ng-repeat, ng-click, директива и взаимодействие с контроллером
У меня есть этот фрагмент директивы:
return {
scope: {},
restrict: 'E',
templateUrl: 'partials/order_table.html',
controller: 'OrderController as x',
link : function(scope, element, attrs) {
}
и это templateURL
фрагмент кода:
<tr ng-repeat="r in getOrderModel().getSizes()" ng-click="x.setSize($index)">
У меня вопрос, почему ng-repeat
имеет доступ к контроллеру напрямую (#getOrderModel
это функция в контроллере) ng-click
не? Если я уберу хоккей as x
из директивы и тому x.
от ng-click
, ng-click
перестает работать Почему не ng-click
обратитесь к контроллеру? Как мне сделать контроллер известным ng-click
используя лучшие практики?
я знаю ng-repeat
создаст дочернюю область, но для меня это не похоже на проблему родительской области.
1 ответ
Используйте свойство controllerAs:
return {
scope: {},
restrict: 'E',
templateUrl: 'partials/order_table.html',
controller: 'OrderController',
controllerAs: 'x',
link : function(scope, element, attrs) {
}