나는 개체 유도 할 수있는 지침이 있습니다양방향 고립 범위없이 바인딩
export class MyListDirective implements ng.IDirective {
bindToController = true;
controller = MyListDirectiveController;
controllerAs = "vm";
require = ["^parentDirective"];
restrict = "E";
templateUrl = '/list.tpl.html';
scope = {
detailedObject: "="
};
}
MyListDirectiveController :
export class MyListDirectiveController implements IMyListScope{
colliRelatedDetails: ColliEventGroup[];
static $inject = ['$scope'];
constructor(scope:any) {
}
}
그리고 템플릿 (list.tpl.html) :
<div class="table-responsive">
<table id="listtable"
class="table valigntoptable collapse-table table-striped table-hover">
<thead>
<tr>
<th>
<div class="cursor-pointer" ng-click="vm.sortEventsByNumber()">Number</div>
</th>
<th>
<div class="cursor-pointer" ng-click="vm.$parent.sortEventsByValue()">Value</div>
</th>
</tr>
</thead>
<tbody ng-repeat="Event in vm.detailedObjects">
<tr class="top-padding">
<td>
{{Event.number}}
</td>
<td>
{{Event.value}}
</td>
</tr>
</tbody>
</table>
</div>
을
위에서 볼 수 있듯이 MyDirectiveController
에는 정렬 방법이 없습니다. 내가 해결하려고하는 방법은 부모 컨트롤러 안에 있습니다 (다른 비슷한 목록이 필요하기 때문에). 그래서 parentDirectiveController
의 메소드를 호출해야합니다. 하지만 어떻게 접근 할 수 있습니까?
양방향 바인딩이 필요하기 때문에 격리 된 범위를 제거 할 수 없습니다. 그렇지 않으면 sort-functions이 호출 될 때 목록이 갱신되지 않습니다.
그리고 새로운 sort-Methods를 MyListDirectiveController
안에 추가하려면 상위 스코어를 삽입하고 메소드를 호출하십시오. 그러나 이것이 이것을하는 깔끔한 방법이 아닌 것처럼 보입니다.
어떻게이 문제와 관련이 있습니까? 이것은 각도 사용의 기본 예제 인 것으로 보입니다. – Claies