AngularJS和SELECT:如何以编程方式设置初始项?

时间:2014-10-29 13:32:32

标签: javascript angularjs pug

我有这样的代码:( JADE语法)

    select(ng-model="eventTypeUI")
           option(ng-repeat="c in eventUI", ng-value='c.value',
               ng-disabled='selectEventCanNotBeUsed(c.value)') {{c.name}}

我没有在选择中使用ng-options,因为我需要动态启用/禁用具有ng-disabled调用的单个列表。

EventUI具有以下结构:

  [ { "name": "Creation date", "value": 1 }, { "name": "Scratch Date", "value": 2 }, 
  { "name": "Shippment Date", "value": 3 } ]

但是当我最初将event.eventTypeUI设置为控制器init中的某个数字时,我没有以编程方式选择它。相反,出现“未定义”空白状态的选择。我怎么能这样做,以便默认选择值为5的项目?

如果可能,我也希望ng-model不要采用c.value,而是将对象c作为一个整体。当我尝试分配ng-value = c时,我在eventTypeUI中得到了“[object Object]”。

1 个答案:

答案 0 :(得分:0)

来自docs

  

注意: ngOptions<option>元素提供了一个迭代器工具,当您希望选择模型时,应使用该工具代替ngRepeat 绑定到非字符串值。这是因为选项元素目前只能绑定到字符串值。

因此,使用<option ng-repeat>只能生成字符串值。

至于初始值,请确保它也是一个字符串 - 而不是现在的数字 - 以便与===进行比较。