[英]ng-model not working propertly with ng-options and array
从选择选项中的ng-repeat更改为ng-options后,我遇到了一些问题。 问题是ng-model发送整个数组而不是所选数组。 我有一个数组,只有几个值叫sms
var sms = ['1','2','3','4','5'];
这就是我在HTML中做的方式
<select id="sms-from" ng-options="s.id as s for s in sms" ng-selected="smsSender = s.id " ng-init="s = s.id " ng-model="sendSms.from">
</select>
这将使包含sms数组的所有值的下拉列表$scope.sendSms.from
,并将所选值保存到我的js文件中的$scope.sendSms.from
。
它所做的是保存所有数组而不是选定的值。
尝试在ng-selected和ng-init中从s.id切换到sms [0],但结果相同。
当我在选项标签中使用ng-repeat时,它工作正常,但是第一个值是空白,因此我开始使用ng-options,这对我而言并不常见。
因此,我要求您的帮助。
提前致谢。
ng-selected="smsSender = s.id "
对数组中的所有值(除ID值为零的那个值都为true
),请尝试ng-selected="smsSender == s.id "
。
很少观察到:
var sms = ['1','2','3','4','5'];
应该是$scope.sms = ['1','2','3','4','5'];
当您执行角度绑定时。 ng-options
语法不正确。 应该是ng-options="s for s in sms"
in ng-options="s for s in sms"
因为在sms
数组中没有名为id
键。 更正了<select>
元素语法:
<select id="sms-from" ng-options="s for s in sms" ng-model="sendSms.from" ng-change="getVal(sendSms.from)">
</select>
工作演示:
var myApp = angular.module('myApp',[]); myApp.controller('MyCtrl',function($scope) { $scope.sms = ['1','2','3','4','5']; $scope.getVal = function(val) { console.log(val); }; });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <div ng-app="myApp" ng-controller="MyCtrl"> <select id="sms-from" ng-options="s for s in sms" ng-model="sendSms.from" ng-change="getVal(sendSms.from)"> </select> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.