Angularjs - 使用动态ng-model在select中设置默认选项

时间:2018-01-12 14:09:43

标签: angularjs angularjs-ng-model

我遇到了这个问题:我在ng-repeat中创建了一个选择,每个选择的ng模型都是动态生成的。

我需要为这些选择设置默认值,但我不知道我该怎么做

HTML

<div ng-controller="ricercaAttivita">
    <div class="accordion-group" ng-repeat="masterAttribute in masterAttributes">
        <select class="trip dark" ng-change = "search(1, true, true)" ng-model="masterAttribute.Id" ng-options="attr.Id as attr.Value for attr in masterAttribute.Values">
            <option value="">Tutte</option>
        </select>
    </div>
</div>

APP.JS

var tantoSvagoApp = angular.module('tantoSvagoApp');

tantoSvagoApp.controller("ricercaAttivita", function ($scope) {

    $scope.masterAttributes = {"id" : "11", nome" : "MARCHE", "values" :
                                                    [{ "id": "114", "nome": "ANCONA" }, { "id": "116", "nome": "ASCOLI PICENO" }]           
        },
                              {"id" : "12", nome" : "LOMBARDIA", "values" :
                                                    [{ "id": "120", "nome": "MILANO" }, { "id": "121", "nome": "BERGAMO" }]         
        };

});

我的选择的ng模型是“masterAttribute.Id”,我需要循环每个生成的选择,并且在某些条件下,设置选择的特定默认选项。

这样的东西

$ scope.masterAttribute.Id = value;

我怎么能这样做? 有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:0)

$ scope.masterAttributes应该是一个数组[],

 $scope.masterAttributes=[{
        "id": "11",
        nome " : "
        MARCHE ", "
        values " : [{
            "id": "114",
            "nome": "ANCONA"
        }, {
            "id": "116",
            "nome": "ASCOLI PICENO"
        }]
    },
    {
        "id": "12",
        nome " : "
        LOMBARDIA ", "
        values " : [{
            "id": "120",
            "nome": "MILANO"
        }, {
            "id": "121",
            "nome": "BERGAMO"
        }]

最后在select is,

中设置默认值
$scope.masterAttribute = $scope.masterAttributes[0].values[0];

答案 1 :(得分:0)

只需将所选值对象设置为$scope.masterAttribute即可。在您的控制器中添加

$scope.masterAttribute = masterAttribute.Values[0];
希望这会有所帮助。