ng-options无法正确更新ng-model

时间:2015-06-30 18:07:06

标签: javascript angularjs

当我的代码加载一切按预期工作时,会显示选择框,所有的选项都来自我传递给指令的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>

1 个答案:

答案 0 :(得分:1)

删除track by v表达式。来自AngularJS docs on ngOptions

  

请勿在同一表达式中使用select as和track by。它们并非旨在协同工作。

我今天在代码中遇到了类似的问题,结果发现我确实试图在一个表达式中使用这两个东西。删除它有帮助。