Angularjs选择选项选择默认值

时间:2013-04-30 11:49:06

标签: angularjs

我开始在项目中使用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?

3 个答案:

答案 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");
});