我开始在项目中使用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>
我将所有银行迭代到下拉列表。用户选择并按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");
});
如何将它设置为bankID 11 letssay,即XX Bank?
答案 0 :(得分:15)
您不应该以这种方式使用ng-repeat。请查看ngOptions http://docs.angularjs.org/api/ng.directive:select
答案 1 :(得分:8)
我是棱角分明的新手并为此奋斗了一下。这是执行该操作的简单标记,它是ng-selected:
<option ng-repeat="bank in banks" value="{{bank.id}}" ng-selected="'11' == bank.id" >{{bank.text}}</option>
但是再次:不要像Lander所建议的那样这样做。而是在ng-options
中使用<select>
。否则,您将在模型中的dropdown.assign bank.selected.id
中找到空的第一个选项。(在您的情况下,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>
还要记住选项值不会在选项中显示bank-id,而是会显示选项值=&#34; 0&#34;或&#34; 1&#34;或&#34; 3&#34;这是索引。但是下拉列表中的选定值将与bank.selected.id
模型绑定。例如,如果选择下拉值,例如bank.id = 11(XX Bank),则bank.selected.id将设置为&#34; 11&#34;。
答案 2 :(得分:2)
我找到了,很容易错过了。这是正确的代码。
<div>
<label for="lastname">Bank Name :</label>
<select ui-select2 ng-model="bank">
<option></option>
<option ng-repeat="bank in banks" value="{{bank.id}}">{{bank.text}}</option>
</select>
</div>
$http.get('/AdServerLongTail/api/user').
success(function(data, status, headers, config) {
if(status == 200){
$scope.id = (data["id"]);// user id
$scope.bank = (data["bankId"]);
}
}).
error(function(data, status, headers, config) {
alert("fail");
});