繁体   English   中英

ng-model无法与ng-options和array配合使用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM