指令范围重写父值

时间:2013-09-27 19:28:02

标签: javascript angularjs

我写了指令:

   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" >

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

1 个答案:

答案 0 :(得分:1)

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

它不可见的原因是因为函数anyFunction()undefinedundefined将被false中的函数toBoolean()评估为ng-show {1}}指令。您可以参考此answer了解详细信息。