谈话很便宜,首先显示我的代码:
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)