当我的代码按预期加载所有东西时,将显示选择框,所有thge选项都来自我要传递给指令的state.TRVs
。并且选择了myConfig.myTime
的值,但是当我更改值时,选择框变为空白,并且myConfig.myTime是undefined
。我正在使用AngularJS v1.2.28。
我有一个指令,这是HTML中的指令元素:
<my-dir my-config="conf" time-range-values="state.TRVs"></my-dir>
指令:
angular.
module("myMod").
directive("myDir", [
function () {
"use strict";
return {
restrict: "E",
scope: {
myConfig: "=",
timeRangeValues: "="
},
templateUrl: "my-temp"
};
}]);
my-temp.html:
<select ng-model="myConfig.myTime"
ng-options="v as v for (k, v) in timeRangeValues track by v">
</select>
最佳答案
删除track by v
表达式。从AngularJS docs on ngOptions
中:
不要在同一表达式中使用“选择为”和“跟踪”。它们并非旨在一起工作。
就在今天的代码中,我遇到了类似的问题,结果发现我确实尝试在一个表达式中同时使用这两个东西。删除它有帮助。
关于javascript - ng-options无法正确更新ng-model,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31145332/