5

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

我将所有银行迭代到下拉列表。用户选择并按下保存。我正确获得了 id 并将其保存到数据库中。当用户回来时,我无法将下拉列表的值设置为他选择的值。我在 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 letsay,即 XX 银行?

4

3 回答 3

15

您不应该以这种方式使用 ng-repeat。请查看 ngOptions http://docs.angularjs.org/api/ng.directive:select

于 2013-05-12T08:36:18.793 回答
10

我是角度的新手,为此有点挣扎。这是执行此操作的简单标记,并且是 ng-selected:

<option ng-repeat="bank in banks" value="{{bank.id}}" ng-selected="'11' == bank.id" >{{bank.text}}</option>

但同样:不要按照Lander的建议这样做。而是使用ng-options. <select>否则,您将bank.selected.id在模型中的 dropdown.assign 中得到空的第一个选项。(在您的情况下,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>

另请记住,选项值不会显示选项中的银行ID,而是显示选项值=“0”或“1”或“3”,即索引。但是下拉列表中的选定值将与bank.selected.id模型绑定。例如,如果选择下拉值,例如 bank.id=11 (XX Bank),则 bank.selected.id 将设置为“11”。

于 2013-11-07T16:39:07.947 回答
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");
}); 
于 2013-04-30T12:03:45.813 回答