我有这个指令片段:
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
会创建一个子范围,但这对我来说不像父范围问题。
答案 0 :(得分:1)
使用controllerAs属性:
return {
scope: {},
restrict: 'E',
templateUrl: 'partials/order_table.html',
controller: 'OrderController',
controllerAs: 'x',
link : function(scope, element, attrs) {
}