【问题标题】:AngularJS and SELECT: how to programmatically set the initial item?AngularJS 和 SELECT:如何以编程方式设置初始项?
【发布时间】:2014-10-29 22:04:24
【问题描述】:

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

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

我不在 select 中使用 ng-options,因为我需要通过 ng-disabled 调用动态启用/禁用单个列表。

EventUI 的结构如下:

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

但是,当我最初在控制器初始化中将 event.eventTypeUI 设置为某个数字时,我没有以编程方式选择它。相反,选择的“未定义”空白状态出现。我怎样才能使默认情况下 value=5 的项目被选中?

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

【问题讨论】:

    标签: javascript angularjs pug


    【解决方案1】:

    来自docs

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

    所以,使用<option ng-repeat> 只能产生字符串值。

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

    【讨论】:

      猜你喜欢
      • 2020-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-07
      • 1970-01-01
      • 2018-07-25
      相关资源
      最近更新 更多