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

在AngularJS指令中向HTML元素添加属性,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我是angular的新手,正在尝试将验证添加到基于属性的指令中。以下是我如何使用该指令: <div sc-textbox data-bind-to="fieldToBind" data-field-name="fieldName" data-required="someValue != 'Office'"></div> 非常感谢您提供的任何帮助。因为您的范围有限,所以在指令的范围中需要一个表示“someValue!=‘Office’”的布尔值 或者在范围中添加一些值并执

我是angular的新手,正在尝试将验证添加到基于属性的指令中。以下是我如何使用该指令:

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

非常感谢您提供的任何帮助。

因为您的范围有限,所以在指令的范围中需要一个表示“someValue!=‘Office’”的布尔值

或者在范围中添加一些值并执行以下操作:

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

更新


要添加“data ng required”的属性是一个指令。您不能以动态方式从DOM中添加和删除指令。如果您真的不想在DOM的某些部分中使用“data ng required”,并且希望它是动态的,那么您可以做的最接近的事情就是$compile并将此输入附加为两个模板->一个带required,一个不带required,为什么不将ng required保留在那里呢。这就是它的用途。

因为它可能不是必需的。该指令将用于所有表单上的所有文本框,在某些情况下该字段是必需的,而在其他情况下则不是。因此,我只想在该指令设置了所需数据时添加ng required。data required=“someValue!=”Office'”只是条件required的一个示例。它可以是data required=“true”,也可以全部省略,在这种情况下,我根本不希望需要的数据ng出现在那里。我希望这是有意义的。从角度来说,修改模板的HTML是不可能的吗?似乎可以这样做:在编译之前,可以对模板执行任何操作。一个简单的例子:dest.append($compile({{stepNumber}}')($scope));在这种情况下,如何访问输入以添加属性?假设它不是模板中唯一的html。在jQuery中,我们将使用id,但这里甚至还没有设置id。此命令正在编译字符串“{stepNumber}”。因此,将属性添加到DOM元素中是一个如何生成字符串的问题
scope: {
    'bindTo': '=',
    'fieldName': '@',
    'required': '='
}
<input id="{{fieldName}}"
  data-ng-required="(someValue != 'Office') && required"
  name="{{fieldName}}" type="text" 
  data-ng-model="bindTo" />