如何在AngularJS指令中设置所需属性的列表?

时间:2016-10-28 18:08:09

标签: javascript angularjs angularjs-directive attributes

我创建了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替换为破折号案例,对吗?

1 个答案:

答案 0 :(得分:0)

如果你必须创建' A'属性类型指令,它应该放在指令的范围{conditionalValue:' ='}或bindToController:{conditionalValue:' ='},而不是在require:{},require用于指令通信的指令。

如果在指令定义对象中有require,则该指令继承require字段中提到的父指令。例如,如果你有,

app.directive('tabSet',function(){
 //DDO
});

tabs指令可以继承tabSet指令的控制器属性。

app.directive('tabs',function(){
  return{
    require:'^tabSet'
  }
});