在AngularJS指令中向HTML元素添加属性

时间:2014-02-24 21:31:53

标签: angularjs angularjs-directive

我是angular的新手,我正在尝试根据属性为指令添加验证。以下是我使用该指令的方法:

<div sc-textbox data-bind-to="fieldToBind" data-field-name="fieldName" data-required="someValue != 'Office'"></div>

可能存在或不存在数据所需属性。该指令的模板是:

<input id="{{fieldName}}" name="{{fieldName}}" type="text" data-ng-model="bindTo" />

当存在data-required属性时,我想在输入中添加data-ng-required =“{{required}}”。我该怎么做呢?

该指令的范围是:

scope: {
    'bindTo': '=',
    'fieldName': '@',
    'required': '='
}

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

因为你的范围有限,你需要在你的指令范围内使用一个布尔值来表示“someValue!='Office'”。

或者将someValue放在范围内并执行此操作:

<input id="{{fieldName}}"
  data-ng-required="(someValue != 'Office') && required"
  name="{{fieldName}}" type="text" 
  data-ng-model="bindTo" />

<强>更新

您要添加“data-ng-required”的属性是一个指令。您无法在Angular中动态添加和删除DOM中的指令。如果你真的不想在DOM的某些部分中使用“data-ng-required”,并且你希望它是动态的,那么你最接近的就是$ compile并将这个输入附加为2个模板 - &gt;一个是必需的,一个没有

答案 1 :(得分:0)

为什么不留下必要的ng-required。这就是它的用途。