【问题标题】:Angular ng-options how to bind to one property, not entire object?Angular ng-options 如何绑定到一个属性,而不是整个对象?
【发布时间】:2016-11-12 17:50:28
【问题描述】:

我正在使用 ng-options 从对象数组中创建一个 Select。这工作得很好,就这个问题而言,对象的内容有点不重要,只要说它们有一个 name 属性、一个 value 属性和一些其他属性就足够了。

下面是我用来创建 Select 的代码,到目前为止它运行良好。

Here's my question - when an option is selected, what gets bound to the ng-model is the "entire object" (fl).我想绑定到 ng-model 的只是对象的“名称”(i.itemName)部分。

我想我可以通过事后返回来解决这个问题,当按下提交按钮时,我可以遍历所有数据,找到绑定的对象,从中提取名称,然后更改它,使其不受约束这个名字,但是......这相当草率,而不是真正应该如何处理。

有没有办法更改此代码,以便当我选择一个项目时,ng-model 绑定到 i.itemName 而不是 fl

<select chosen
        id="{{fl.fldBasic.fldLabel}}"
        ng-model="fl.dataValue"
        ng-readonly="{{fl.fldBasic.attrReadOnly}}"
        title="{{fl.help}}"
        ng-required="{{fl.required}}"
        class="chosen-select"
        ng-options="i.itemName for i in fl.combo_ItemList.itemList track by i.itemValue"
        style="width: 100%;">
</select>

【问题讨论】:

    标签: angularjs ng-options


    【解决方案1】:

    如果要将ng-model 绑定到 itemName,可以使用以下代码。请注意,您需要在此处删除 track 才能正常工作,因为它将评估为 undefined 并且模型值将不匹配任何选项。

    i.itemName as i.itemName for i in fl.combo_ItemList.itemList.
    

    【讨论】:

      猜你喜欢
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 2022-08-19
      相关资源
      最近更新 更多