如何在角度js中使用ng-repeat时动态添加指令?

时间:2013-11-28 12:37:53

标签: angularjs angularjs-directive angularjs-ng-repeat

我的主页上有以下代码: -

<ul>
     <li ng-repeat="item in list"  ng-controller="controller1"></li>
</ul>

现在item有各种属性,如item.type,item.title,item.content,item.webService ......

如果item.content为null,则调用item.webService以获取内容,每个item.type都有自己的呈现模板

所以我想为每个item.type编写指令,它负责从模板: link 属性自己操作DOM
在链接中:我打电话给webservice获取内容
in template:我指定特定item.type ...

的模板
directive("directive1", function ($http) {
try {
    return {
        restrict: "E",

        transclude: true,
        scope: {


            sWebServicePath: "="
        },

        template: template1,

        link: function (scope, element, attrs) {

            var request = {};

            $http({ method: "POST", url: scope.sWebServicePath, data: request }).
            success(function (data, status) {
                scope.response = data;
            }).
            error(function (data, status) {
                alert("Service Call Error");
            })
        }
    }
}
catch (e) {
    alert(e);
}
});

所以, type1由directive1处理 type2 by directive2等等..

现在我希望controller1具有上面指定的映射说明

<ul>
     <li ng-repeat="item in list"  ng-controller="controller1"></li>
</ul>

controller1 遇到 item.type = 1 时,它应该调用 directive1 ,然后调用 item.webservice 获取数据并包含 template1 以及来自webservice的响应

实现上述功能的理想方式是什么?如果有替代方法,请发表评论谢谢!

0 个答案:

没有答案