Как-то так, a можно на button заменить, php-storm ругается видно из-за семантики
<ol id="list_2" class="list_2" ui-sortable="SortCtrl.list2Options" ng-model="SortCtrl.list2">
<li ng-repeat="app in SortCtrl.list2">
<a ng-click="app.visible = !app.visible">{{ app.name }}</a>
</li>
</ol>
<ol ng-model="SortCtrl.list2">
<li class="list-type-option" ng-repeat="app in SortCtrl.list2" ng-show="app.visible">
<input type="text" ng-model="app.name"> <input type="text" ng-model="app.type">
</li>
</ol>
(function () {
angular
.module('testSortable', [])
.controller('TestSortableController', function () {
this.list2 = [
{ name: "another name", type: "input", visible: true },
{ name: "another second name", type: "result", visible: true }
];
});
})();