我是棱角分明的新人。我一直在尝试"指令"。当使用指令时,我发现以下两种方法将控制器与指令一起使用。
方法1
angular.module('folderSettingApp')
.directive('templateRenderer', function () {
return {
// other options
, controller: 'GridController'
};
});
方法2
angular.module('folderSettingApp')
.directive('templateRenderer', function () {
return {
// other options
, controller: function ($scope, $attrs) {
// add some functions here
}
};
});
我不知道什么方法可以使用,任何建议都会受到赞赏。
答案 0 :(得分:1)
根据您的使用情况,使用哪一个并不是那么普遍,
例如,如果您想在应用中多次使用指令,最好不要在指令中定义任何控制器,如下所示:
.directive('exampleDirective', function (){
return {
restrict: "A", // OR E OR AE OR C
template: "<div>YOUR TEMPLATE HERE</div>",
link: function (scope, element, attributes) {
// what ever function you want whould be here:
}
}
});
但一般来说,为了角度的模块性,在指令中定义控制器并不是一个好主意。
因为指令的目的是在多个控制器和多个视图中使用它。
因此,在指令中定义一个控制器,只是使该指令在限制使用时不那么模块化。
答案 1 :(得分:0)
单独控制器的一个参数是为了便于测试。编写实例化的测试并允许您在单独的控制器上测试单个代码并不难。