hak*_*aki 2 angularjs angularjs-directive
我试图在我的一个指令ngModel和我自己的指令上要求两个控制器.
父控制器应该注入到孩子的链接功能,但我无法让它工作.我想知道我做错了什么......
app.directive('container', function () {
return {
transclude : true ,
template : "<div ng-transclude></div>",
controller : function ($scope) {
console.log('container controller');
$scope.v1 = '123';
$scope.f1 = function () {
console.log('f1');
};
},
link : function (scope, element) {
console.log('container link');
}
};
});
app.directive('single', function () {
return {
require : ['^container','ngModel'],
scope : false ,
link : function (scope, element, attrs , parentsCtrl) {
console.log('single link');
console.log(parentsCtrl);
var containerParent = parentsCtrl[0];
var ngModel = parentsCtrl[1];
// FAIL //
console.log(containerParent.v1);
containerParent.f1();
}
};
});
Run Code Online (Sandbox Code Playgroud)
和HTML
<div container>
<input single type="text" ng-model="my.value" />
</div>
Run Code Online (Sandbox Code Playgroud)
该single指令注入两个控制器的构造函数,但container控制器为空.我期望找到v1属性和f1功能.
使用require链接功能访问控制器对象,而不是控制器的范围.所以这:
$scope.v1 = '123'; // WRONG
Run Code Online (Sandbox Code Playgroud)
真的应该是:
this.v1 = '123'; // RIGHT
Run Code Online (Sandbox Code Playgroud)
被访问为containerParent.v1.
| 归档时间: |
|
| 查看次数: |
616 次 |
| 最近记录: |