仅在角度需要字段时才会禁用

时间:2016-07-11 04:34:59

标签: javascript html angularjs forms input

如果字段未被禁用,我怎么才能要求字段?这没有用:

<form name="foo">
  <input type="text" name="bar" ng-required="!foo.bar.disabled">
</form>

请注意,我是通过纯javascript直接禁用该字段,而不是ng-disabled。我有directive贯穿表单启用/禁用内容。

该指令侦听$on消息,并根据获取的内容运行:

element.find(':input').prop('disabled', true);

$on消息来自不同的范围,因此我无法直接引用它并执行ng-disabled=....

1 个答案:

答案 0 :(得分:2)

ng-disabled与范围变量一起使用。然后,您的指令可以通过此范围变量启用/禁用输入。如果您的指令继承自另一个范围,请使用中间工厂来管理范围变量。

$scope.barDisabled = dataSharer.barDisabled;

在上面的示例中,dataSharer是工厂,barDisabled指向单身。

以您的形式:

<form name="foo">
  <input type="text" name="bar" ng-required="!bartDisabled" ng-disabled="barDisabled">
</form>