是否可以将自定义控制器传入自定义指令?

时间:2016-03-13 09:56:07

标签: angularjs

是否可以将自定义控制器传入自定义指令,以便能够在具有不同控制器的页面上使用自定义指令

我无法在docs.angularjs.org上找到解决方案

[编辑]

假设我们有以下指令的定义:

$('#messages').load('msg.php');

我可以简单地覆盖指令的控制器而不触及指令的源代码本身吗?

2 个答案:

答案 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>