我开始在项目中使用angularjs.在这里,我有一个任务.我有以下HTML
<div>
<label for="lastname">Bank Name :</label>
<select ui-select2 ng-model="bank.id">
<option></option>
<option ng-repeat="bank in banks" value="{{bank.id}}">{{bank.text}}</option>
</select>
</div>
Run Code Online (Sandbox Code Playgroud)
我将所有银行迭代到下拉列表.用户选择并按SAVE.我正确地得到了id并将其保存到DB中.当用户回来时,我无法将下拉值设置为他选择的值.我在controller.js中这样做
$http.get('/AdServerLongTail/api/user').
success(function(data, status, headers, config) {
if(status == 200){
$scope.id = (data["id"]);// user id
$scope.bank.id = (data["bankId"]);
}
}).
error(function(data, status, headers, config) {
alert("fail");
});
Run Code Online (Sandbox Code Playgroud)
如何将它设置为bankID 11 letssay,即XX Bank?
Lan*_*der 15
你不应该以这种方式使用ng-repeat.请查看ngOptions http://docs.angularjs.org/api/ng.directive:select
我是棱角分明的新人,为此做了一点努力.这是一个简单的标签,它是ng选择的:
<option ng-repeat="bank in banks" value="{{bank.id}}" ng-selected="'11' == bank.id" >{{bank.text}}</option>
Run Code Online (Sandbox Code Playgroud)
但是再说一遍:不要像兰德所建议的那样这样做.而是用ng-options在<select>.否则,你将在dropdown.assign bank.selected.idin model中得到空的第一个选项.(在你的情况下,ng-model是bank.id.)
<select ng-model="bank.selected.id" ng-change="someAngularfunction()" ng-options=" (''+bank.id) as (bank.id +' - '+ bank.text) for bank in banks">
<option value="">Select one</option>
</select>
Run Code Online (Sandbox Code Playgroud)
还要记住,选项值不会在选项中显示bank-id,而是显示选项value ="0"或"1"或"3"这是索引.但是下拉列表中的选定值将与bank.selected.id模型绑定.例如,如果选择下拉值,例如bank.id = 11(XX Bank),则bank.selected.id将设置为"11".