我试图使用AngularJS中的指令编写可重用的组件。我遇到的问题是,在我的可重用组件中,在模板中,我想使用另一个指令。但是,该指令具有require
属性,并且它会抛出错误,就好像它不符合要求即使它不应该也是如此。 Here是一名掠夺者。
无法找到指令'内部'所需的控制器' div!
directive('inner', function(){
return {
require: 'div',
link: function (scope, elem, attrs){
console.log('Inner Link');
}
}
}).
directive('outer', function($timeout){
return {
restrict: 'E',
templateUrl: 'template.html',
link: function (scope, elem, attrs, ngModel){
console.log('Outer Link')
}
}
})
<div>
<div inner></div>
</div>
内部元素和require不是div
,而应该是input
。
答案 0 :(得分:0)
两个错误。
require
获取所需的指令名称,而不是您附加的元素
至。 outer
需要一个控制器,因为这是inner
所需要的。Plunker:http://plnkr.co/edit/1epiLV1zjAlXlOodrkO3?p=preview
angular.module('plunker', []).
directive('inner', function(){
return {
require: '^outer',
link: function (scope, elem, attrs){
console.log('Inner Link');
}
}
}).
directive('outer', function($timeout){
return {
restrict: 'E',
templateUrl: 'template.html',
link: function (scope, elem, attrs, ngModel){
console.log('Outer Link')
},
controller: function() {
}
}
});