Angular 将指令的参数绑定到控制器
Angular binding directive's parameters to controller
我在绑定指令的参数(使用隔离范围)以从指令的自定义控制器访问它们时遇到问题。
请检查这个fiddle(打开控制台,查看记录的结果!)http://jsfiddle.net/xj9gqqxn/4/
<div ng-controller="appCtr">
<div>
<div custom-directive param="customer.name">
<span>{{customer.name}}</span>
<br/>
<input type="text" ng-model="customer.name"/>
</div>
</div>
</div>
当我在指令的 link 函数中登录时,值会被记录下来,但是当我在控制器的构造函数中执行相同操作时,我看到该值未定义。
如果有人知道如何在指令控制器的构造函数中访问指令的参数值,请分享答案或指出我犯了错误的地方..很遗憾我没有进一步的线索...
谢谢
好吧,你的控制器和指令有相同的作用域,所以这会工作得很好:
app.controller('customController', ['$scope', '$timeout' , function($scope,$timeout) {
console.log("[customController:new] - param value is: " + $scope.param);
}])
http://jsfiddle.net/pegla/xj9gqqxn/6/
此外,如果您正在搜索 bindToController,那么指令 $scope 值绑定到控制器而不是 $scope,您可以这样做:
bindToController: {
param: '='
},
已更新fiddle:
http://jsfiddle.net/pegla/xj9gqqxn/8/
我在绑定指令的参数(使用隔离范围)以从指令的自定义控制器访问它们时遇到问题。
请检查这个fiddle(打开控制台,查看记录的结果!)http://jsfiddle.net/xj9gqqxn/4/
<div ng-controller="appCtr">
<div>
<div custom-directive param="customer.name">
<span>{{customer.name}}</span>
<br/>
<input type="text" ng-model="customer.name"/>
</div>
</div>
</div>
当我在指令的 link 函数中登录时,值会被记录下来,但是当我在控制器的构造函数中执行相同操作时,我看到该值未定义。
如果有人知道如何在指令控制器的构造函数中访问指令的参数值,请分享答案或指出我犯了错误的地方..很遗憾我没有进一步的线索...
谢谢
好吧,你的控制器和指令有相同的作用域,所以这会工作得很好:
app.controller('customController', ['$scope', '$timeout' , function($scope,$timeout) {
console.log("[customController:new] - param value is: " + $scope.param);
}])
http://jsfiddle.net/pegla/xj9gqqxn/6/
此外,如果您正在搜索 bindToController,那么指令 $scope 值绑定到控制器而不是 $scope,您可以这样做:
bindToController: {
param: '='
},
已更新fiddle: http://jsfiddle.net/pegla/xj9gqqxn/8/