select 中的奇怪行为 ionic,ng-model 不会更新

Weird behavior ionic in select, ng-model won't update

我遇到了一些奇怪的事情,这个例子在 codepen 中有效,但在我的 Ionic 应用程序中无效。

当我更改 select 标签中的选项时,我想显示 selected 值,但它不起作用,它显示 undefined,我试过了很多方面。

这不是原始代码,原始代码从外部 API 检索值并使用 ngOptions 填充选项(有效,填充正常)。但它不会更新控制器中的值。

所以我决定让它更简单一些,但还是不行:

HTML

<select ng-model="optionSelected" ng-change="selectUpdated()">
    <option value="">Select an option</option>
    <option value="h">Hello</option>
    <option value="b">Bye</option>
</select>

JAVASCRIPT

$scope.selectUpdated = function() {
    console.log('Updated');
    console.log($scope.optionSelected);
};

我认为不需要更多代码,HTML 包含在 ion-viewion-content 中。没有显示错误,只有 'Updated' 输出和 undefined.

更改选项时,我得到 undefined。但是codepen中的这段代码工作得很好.. http://codepen.io/anon/pen/YXvYmq

谁能告诉我是什么情况触发了这种奇怪的行为?

提前致谢。

找到解决方案,将 ngModel 属性 作为参数传递给 ngChange。

HTML

<select ng-model="optionSelected" ng-change="selectUpdated(optionSelected)">
    <option value="">Select an option</option>
    <option value="h">Hello</option>
    <option value="b">Bye</option>
</select>

JS

$scope.selectUpdated = function(optionSelected) {
    console.log('Updated');
    console.log(optionSelected);
};

我今天遇到了同样的问题,必须创建一个解决方法才能正常使用 select。

javascript

$scope.updatePreferredLanguageValue = function() {
   $scope.PreferredLanguage = this.PreferredLanguage;
};

html

<select ng-model="PreferredLanguage" ng-options="Language.id as Language.name for Language in LanguageList" id="LanguageListSelect" name="LanguageListSelect" ng-change="updatePreferredLanguageValue()">
</select>

所以基本上我有一个在值更改时调用的方法,以确保在 $scope 变量上设置更改。不漂亮,但它有效。

尝试在你的 ng-model 中使用 $parent 并从你的控制器中调用它。

例子

<select ng-model="$parent.selectedCar">
 <option>...</option>
</select>

参考:https://github.com/angular/angular.js/wiki/Understanding-Scopes