Angular.js - 仅当未禁用其他元素时,才使用ng-show显示元素

时间:2013-06-20 09:48:19

标签: javascript angularjs angularjs-directive

我有一个元素,我想仅在未禁用另一个表单元素时显示。

<input ng-model="myModel">

以下工作均无效:

<div ng-show="myModel">

这将显示输入是否被禁用,只要它已经设置了过去的值。

<div ng-show="myModel.enabled">
<div ng-show="!myModel.disabled">

这些道具似乎不存在。

<div ng-show='!angular.element(po.vendor__contact).prop("disabled")'>

如果它被禁用了,可能会问jQuery,但事实并非如此。

有没有办法在Angular指令中引用元素是否启用?可以通过询问jQuery来完成吗?

谢谢!

小提琴:http://jsfiddle.net/ADukg/3197/

1 个答案:

答案 0 :(得分:5)

我认为你没有正确使用Angular。您不应该基于另一个元素的状态来确定元素的可见性。

这两个元素都应该取决于模型:

<input ng-model="myModel" ng-disabled="isDisabled">
<div ng-hide="isDisabled">

基本上,视图反映了模型,不检查DOM,也不使用jQuery。您也可以使用ng-hide代替ng-show和!

修改:http://jsfiddle.net/ADukg/3198/