小编kui*_*lau的帖子

如何为指令设置动态控制器?

谈话很便宜,首先显示我的代码:

HTML:

<div add-icons="IconsCtrl">
</div>
Run Code Online (Sandbox Code Playgroud)

指示:

angular.module('attrDirective',[]).directive('addIcons', function($compile){
return {
    restrict : 'A',
    controller : "IconsCtrl"
    },
    link : function (scope, elem , attrs, ctrl) {
        var parentElem = $(elem);
        var icons = $compile("<i class='icon-plus' ng-click='add()'></i>)(scope);
        parentElem.find(".accordion-heading").append(icons);
    },
}
Run Code Online (Sandbox Code Playgroud)

});

控制器:

function IconsCtrl($scope){
  $scope.add = function(){
    console.log("add");
  };
}
Run Code Online (Sandbox Code Playgroud)

现在它工作,当我点击加号图标,浏览器控制台输出"添加".

但我想动态地将控制器设置为指令,如下所示:

HTML:

<div add-icons="IconsOneCtrl">
</div>
<div add-icons="IconsTwoCtrl">
</div>
Run Code Online (Sandbox Code Playgroud)

控制器:

function IconsOneCtrl($scope){
       $scope.add = function(){
        console.log("IconsOne add");
       };
    }

function IconsTwoCtrl($scope){
    $scope.add = function(){
        console.log("IconsTwo add");
    }
}
Run Code Online (Sandbox Code Playgroud)

指令喜欢:

angular.module('attrDirective',[]).directive('addIcons', function($compile){ …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive

31
推荐指数
1
解决办法
2万
查看次数

标签 统计

angularjs ×1

angularjs-directive ×1