嵌套ng-repeat

时间:2016-03-03 15:13:25

标签: javascript angularjs

我正在使用AngularJS ng-repeat来填充select html对象。 每个类别对象都有一个子类别列表,这些子类别根据从第一个选择中选择的主要类别动态计算。这些子类别本身在另一个选择中显示。

代码类似于以下

    <div>
        <select>
            <option ng-value="sk.id" ng-repeat="sk in skills" ng-bind-html="sk.name"></option>
        </select>
    </div>
    <div ng-repeat="cat in mainCategories">
            <div>
                <select>
                    <option ng-value="subcat.id" ng-repeat="subcat in cat.allsubcategories" ng-bind-html="subcat.name" ></option> 
               </select>
            </div>
    </div>

从第一个选择中选择技能时(ng-repeat =&#34; sk in skill&#34;) 创建一个新类别,并调用函数addMainCategory(见下文)。创建类别时,将调用ajax操作以获取其子类别。之后,主类别及其子类别数组被推到角度范围。 javascript代码如下:

var addMainCategory = function(idCat, nameCat, parent, color){
    $scope.$apply(function() {
         var newMainCat = {"id": idCat, "name": nameCat, "allsubcategories":[]};
         $.ajax('?r=user/subcategory&id='+idCat).done(function(data) {

         var cat_parse = JSON.parse(data);
         for (var i=0; i< cat_parse.length; i++) {
            newMainCat.allsubcategories.push({"id":cat_parse[i].id, "name":cat_parse[i].name});
        }
    });
    $scope.mainCategories.push(newMainCat);
});

然而,尽管正确显示了主要类别,但其子类别(变量&#34; allsubcategories&#34;)未在选择中更新,即嵌套选择内未显示任何子标记,即使变量正确(用firebug检查)。 你有什么建议可以解决这个问题吗?

0 个答案:

没有答案