我创建了AngularJS指令,要求HTML元素: 1)成为形式的孩子; 2)有条件值'属性;
为了实现这一点,我创建了这样的指令:
.directive('onFocusoutDoSomething', function () {
return {
require : ['^?form', '^conditionalValue'],
restrict : 'A',
link : function(scope, element, attrs, ctrl) {
// ... do something
}
}
})
但由于某种原因,我得到了这个例外: 指令' onFocusoutDoSomething'所需的Controller' conditionalValue',无法找到!
Camel案例指令名称和属性由AngularJS替换为破折号案例,对吗?
答案 0 :(得分:0)
如果你必须创建' A'属性类型指令,它应该放在指令的范围{conditionalValue:' ='}或bindToController:{conditionalValue:' ='},而不是在require:{},require用于指令通信的指令。
如果在指令定义对象中有require,则该指令继承require字段中提到的父指令。例如,如果你有,
app.directive('tabSet',function(){
//DDO
});
tabs指令可以继承tabSet指令的控制器属性。
app.directive('tabs',function(){
return{
require:'^tabSet'
}
});