手动更改选项后,AngularJS模型不会更新

时间:2015-03-31 18:17:20

标签: javascript angularjs

我对AngularJS模型有疑问。目前我有两个选择标签,我通过一些异步操作填充它然后我只是按接收数据设置选择标签模型。一切都运行良好,但如果我手动更改选择标记(选项),则此异步操作不再更改模型 - 脚本保持模型由我手动挑选 - 我确信我从服务器响应中为模型分配了正确的数据,因为它工作,直到我不手动改变...

<select ng-model="sModel" ng-change="changeAction(sModel)" name="sList" id="sList" ng-options="s.name for s in sList track by s.sId"></select>

(第二个选择如上所示)。

如果有人知道为什么在手动更改后无法更新ngModel,请回复:)

2 个答案:

答案 0 :(得分:2)

您必须使用带有直接变量的ng模型。当使用带有html输入类型的ngmodel时,在ng模型中使用对象类型,否则值不会反映。

$scope.req={value:""};

在html中使用

<select data-ng-model="req.value"></select>

答案 1 :(得分:0)

很奇怪,但我修复了它 - 这是因为'select'被div包含了ng-controller。 Controller实际上包含一个带有更改选择选项的操作。删除此更改后,它没有帮助,但删除整个控制器声明..

<div ng-controller="sController">
<select ng-model="sModel" ng-change="changeAction(sModel)" name="sList" id="sList" ng-options="s.name for s in sList track by s.sId"></select>
</div>

有人能解释我这种异常吗? ; /模型始终在主/公共控制器(父)中更改,其中最初也创建了。

http://jsfiddle.net/nkr33bo0/
相关问题