选定选项的Angular ng-init不起作用

时间:2015-02-25 08:32:22

标签: javascript angularjs angularjs-ng-repeat angularjs-ng-init

我正在研究这个fidde HERE

这是我的控制者:

angular.module('demoApp', []).controller('DemoController', function($scope) {

  $scope.options = [
    { label: 'one', value: '1' },
    { label: 'two', value: '2' },
    { label: 'three', value: '3' },
    { label: 'four', value: '4' }
  ];

    $scope.selected = {
        "aaa": [
            {
                "bbb": {
                    "ccc": 1
                }
            },
            {
                "bbb": {
                    "ccc": 2
                }
            },
            {
                "bbb": {
                    "ccc": 3
                }
            },
         ]
    }

});
$ scope.options是我选择dom的选项,$ scope.selected是我选择dom中的选定项目

这是我的index.html:

<body ng-app="demoApp">
    <div ng-controller="DemoController">
        <div ng-repeat="data in selected.aaa">
            <select ng-model="data.bbb.ccc"
                ng-options="opt.value as opt.label for opt in options" ng-init="data.bbb.ccc = data.bbb.ccc || options[$index].value">
            </select>
            selected must be : {{data.bbb.ccc}}
        </div>
    </div>
</body>

我拥有的是

enter image description here

我需要的是

enter image description here

$ scope.selected的树结构是预期的,它是我需要处理的真实结构。有谁可以帮助我?

1 个答案:

答案 0 :(得分:2)

一切都很简单。您的选项包含字符串,但您的树结构包含int个值。 您需要更改选项对象:

  $scope.options = [
    { label: 'one', value: 1 },
    { label: 'two', value: 2 },
    { label: 'three', value: 3 },
    { label: 'four', value: 4 }
  ];