在指令模板

时间:2016-02-22 21:24:55

标签: javascript angularjs directive

我的指令

中有这个模板
...     
template:

    "<div class='dd caretImg'>" +
       "<div class='display-field '>{{selectedValue[displayField]}}</div>" +
        "<ul>" +
          "<li ng-repeat='item in data' ng-click='selectItem(item)'>" +
            "<span class='checkOn' ng-if='item.value == model'></span>" +
            "<span class='check' ng-if='item.value != model'></span>" +
              "{{item[displayField]}}" +
          "</li>" +
        "</ul>" +
    "</div>",

....

我需要ng-if而不是item.value才能拥有[displayField]项,但是:

ng-if='item[displayField]== model' 

无效。 (这样做很好:

"{{item[displayField]}}" + 

(&#34;&#34; +上方的行)但不在ng-if内。

[displayField]是指令内的变量。它输入了html attrs。

<hover-dropdown
        placeholder   = "select..."
        data          = "comparisons"
        model         = "filter.comparison"
        display-field = "label"
        value-field   = "value"
        style         = "width: 65px;"
        on-select     = "changeFilterField(filter)"
        ></hover-dropdown>

我尝试了以下变化但没有成功。

ng-if='item[displayField] == model'
ng-if='item[{{displayField}}] == model'
ng-if='item{{[displayField]}} == model'
ng-if='{{item[displayField]}}== model'

有谁知道怎么做?

这是一个jsbin:http://jsbin.com/basomupubo/edit?html,js,output

1 个答案:

答案 0 :(得分:0)

我的错误。我打错了字段。 ng-if = item [somevariable]按预期工作。谢谢所有看过它的人。