不会更改变量$ scope.data

时间:2017-06-21 19:00:47

标签: angularjs angularjs-scope

我在$ scope.data中的值有问题但没有改变。 你可以在jsfiddle中看到 - jsfiddle

如果您在设置Currency: 'UAH'后设置Currency: 'RUB',则会看到Qty:2的值将等于'UAH'的值,如下所示:{{1} }

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

P.S。:使用AngularJs 1.2.23,它的工作正确

谢谢。

2 个答案:

答案 0 :(得分:1)

您不能对非唯一值使用'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>

答案 1 :(得分:1)

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

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

工作小提琴https://jsfiddle.net/8842yh49/2/