首页 > 解决方案 > 在angularjs中,为什么ng-model的值在select中保持不变?

问题描述

我有一个简单的表单,用户可以在其中选择一种语言并按保存。的初始值<select>是网页上的用户语言。

我的控制器中有以下 JS 代码:

$scope.usersLanguage = loadUsersLanguage(); // e.g. "en"
$scope.allLanguages = loadAllLanguages(); // array of all languages
$scope.interviewLanguage = $scope.usersLanguage; // preselecting the drodown

$scope.logThis() = function() {
    console.log($scope.interviewLanguage); // Always prints "en"
} 

和以下 HTML

<select
    ng-model="interviewLanguage"
    ng-change="logThis()"
    ng-options="language.Id as language.Name for language in allLanguages"
></select>

ng-change仅用于记录目的。

我的问题是,无论我将语言下拉菜单更改为什么,它总是打印初始值。永不改变。而且我已经仔细检查了数组allLanguages,它们都有唯一的 ID 和名称。

有任何想法吗?以前类似的 StackOverflow 问题没有帮助。

标签: angularjs

解决方案


这也可能是一个参考问题。尝试使用$scope.interviewLanguage = angular.copy($scope.usersLanguage);


推荐阅读