0

我写了指令:

   ensureUnique: function ($http, $parse) {
        return {
            scope: {
                ensureUniqueType: "=",
                ensureUniqueDisabled: "="
            },
         ...
        }
    },

但如果我尝试像这样使用它:

<input name = "groupId" ng-show="anyFunction()" 
       type="text" ng-model="group.groupId" 
       ensure-unique="" ensure-unique-disabled="oldId != '-1'" ensure-unique-type="type" >

输入元素变得不可见(不依赖于 anyFunction 结果)。似乎指令范围重写了ngShow值

4

1 回答 1

1

您应该这样做,ng-show="$parent.anyFunction()"因为该指令创建了一个新范围。

它不可见的原因是因为函数anyFunction()undefined,undefined将被指令中false的函数评估为。详细可以参考这个答案toBoolean()ng-show

于 2013-09-27T20:48:04.503 回答