是否可以将自定义控制器传入自定义指令,以便能够在具有不同控制器的页面上使用自定义指令?
我无法在docs.angularjs.org上找到解决方案
[编辑]
假设我们有以下指令的定义:
$('#messages').load('msg.php');
我可以简单地覆盖指令的控制器而不触及指令的源代码本身吗?
答案 0 :(得分:2)
将自定义控制器与一个HTML模板一起使用
然后将您的数据从该页面传递给指令
并在HTML模板中使用该数据,该模板在指令中分配,或者您也可以在指令中编写控制器。
.controller('myController', function () {
// write business logic here
// take some data which you want to use in directive
});
然后通过HTML传递给指令
使用该数据,
.directive('dir', function () {
return {
scope: {
// collect your data and use it in link
}
};
});
答案 1 :(得分:1)
也许不是像你一样在指令中定义控制器,你可以把它放在html模板中,如:
.directive('myDirective', function () {
return {
restrict: 'E',
replace: true,
scope: {
ctrl: '='
},
template: '<div ng-controller="{{ctrl}}">Hello {{name}}!</div>'
};
});
然后我认为您将能够使用如下指令:
<my-directive ctrl="myDirectiveController"></my-directive>