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-view
和 ion-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
我遇到了一些奇怪的事情,这个例子在 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-view
和 ion-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