不改变变量 $scope.data 的值

Does not change the value of the variable $scope.data

我对 $scope.data 中的值有疑问,该值不会更改。 你可以在jsfiddle中看到 - jsfiddle

如果在设置 Currency: 'RUB' 之后设置 Currency: 'UAH',您将看到 Qty:2 的值将等于 'UAH' 的值,如下所示:prix = {"qty":"2","amount":"1276 UAH"}

如何将值设置为 $scope.data?

P.S.: AngularJs 1.2.23 正常工作

谢谢。

您不能对非唯一值使用 'track by',因为 'track by' 需要一对一的映射。使用 'qty' 将不起作用,因为它不是唯一的,因为 wty 1、2、3 和 4 映射到每个价格对象的不同值(不是一对一)。添加以下更改,它应该可以工作。

    <select name="mySelect" id="mySelect"
    ng-options="option.qty for option in data.availableOptions track by option.qty"
    ng-model="data.selectedOption"></select>

应该是,ng-selected 是这样的,货币变化时会自动选择第一个值:

    <select name="mySelect" id="mySelect"
    ng-options="option.qty for option in data.availableOptions"
    ng-model="data.selectedOption" ng-selected="$first"></select>

正如@Umer 所说,您不能使用非唯一值跟踪。所以改代码如下:

<select name="mySelect" id="mySelect"
  ng-options="option.qty for option in data.availableOptions track by option.amount"
ng-model="data.selectedOption"></select>

工作Fiddle:https://jsfiddle.net/8842yh49/2/