0

我有一个来自 REST 的以下数据结构:

范围.taglist =

[ {名称:“mylist”,标签:[“tag1”,“tag2”,“tag3”,...]},{名称:“mylist2”,标签:[“tag2.1”,“tag2.2” , "tag2.3", ...]} ]

为了显示对象的名称,我有以下 html:

<div>
<select ng-model="tagNameSelection">
<option ng-repeat="tagObj in taglist" value="{{tagObj}}">{{tagObj.name}}</option>
</select>
</div>

<div class="tagdetails">
<!-- present the list of tags from tagNameSelection -->
</div>

现在我对如何呈现单个对象的标签列表有点茫然。我能够以原始格式呈现数组(通过将 {{tagNameSelection}} 粘贴在 tagdetails div 中)但是当我尝试使用 ng-repeat angular 遍历那些数组时会给出错误消息。

奇怪的是,当我将其中一个标签列表硬编码到控制器中的范围时,ng-repeat 可以完美地工作。

4

1 回答 1

1

也许你会感兴趣这样的事情:

HTML

<div ng-controller="fessCntrl">
    <div>
        <select ng-model="tagNameSelection"            
         ng-options="tagObj as tagObj.name for tagObj in taglist"              
         ng-change="change(tagNameSelection)"></select>
    </div>

    <pre>{{tagNameSelection.tags|json}}</pre>

    <div class="tagdetails"> 
        <ul ng-repeat="tag in tagNameSelection.tags">
            <li>{{tag}}</li>
        </ul>    
    </div>
</div>

控制器

var fessmodule = angular.module('myModule', []);

fessmodule.controller('fessCntrl', function ($scope) {



    $scope.change = function (value) {
    };

    $scope.taglist = [{
        name: "mylist",
        tags: ["tag1", "tag2", "tag3"]
    }, {
        name: "mylist2",
        tags: ["tag2.1", "tag2.2", "tag2.3"]
    }]

});

fessmodule.$inject = ['$scope'];

Fiddle

于 2013-10-06T18:28:31.293 回答