1

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

      <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 的选择值。为什么我无法绑定到重复的元素?

4

1 回答 1

0

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

如果 inputDevice.selectedActions 是一个对象数组,我认为它会工作得很好。

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

于 2013-06-19T04:32:39.320 回答