选择不绑定到数据重复数据

时间:2013-06-19 03:16:54

标签: javascript angularjs angularjs-ng-repeat

我正在尝试在ng-repeat中放置一个选择列表,以允许多次显示选择列表,用户为显示的每个seelct列表选择一个值。我的代码如下:

      <div class="actionList" ng-repeat="selectedAction in inputDevice.selectedActions">
        <select class="inputAction" ng-model="selectedAction" ng-options="action as action.fields.name for action in inputDevice.fields.baseDevice.fields.inputs">
          <option value="">
            Select Action
          </option>
        </select>
        <button class="btn btn-primary" ng-click="addAction(inputDevice, $index)">
          +
        </button>
      </div>

它完美运行,除非我选择其中一个选择列表选项时,选择列表只返回默认状态并且未选择该选项(所选操作的状态也保持不变)。我尝试将selectedAction上的属性(例如ng-model="selectedAction.value"而不是selectedAction本身)更改为相同的结果。如果我将ng-model="selectedAction"更改为ng-model="foo"之类的其他内容,则它可以正常工作,并且我可以在范围内观察绑定到新创建的值foo的select的值。为什么我无法绑定到重复的元素?

1 个答案:

答案 0 :(得分:0)

如果你添加一个jsfiddle链接会更容易,但在我看来你试图将ng-model设置为一个原语(string)而不是一个对象,因此每次你改变它,价值不再存在。在这种情况下,selectedAction.value也不起作用,因为selectedAction是一个字符串。

如果inputDevice.selectedActions是一个对象数组,我认为它会运行良好。

你可以尝试的另一件事(不确定它是否会起作用,因为我没有jsfiddle :)),设置ng-model =“foo {{$ index}}” - 那么它理论上应该保存值在循环中使用索引的新范围变量。