我将init()
函数放在我的指令的return
之外:
app.directive('myDirective', function()
{
return {
restrict: 'C',
controller: function($scope)
{
init($scope);
}
}
function init($scope)
{
$scope.params = [];
// Other initializations
}
});
这是不好的做法还是坏主意?我只是不想在init()
内放置controller
,因为我觉得控制器内部的东西可以重复使用并连续运行。
我把它放在最后的一个原因是初始化发生了一次,我想把它放在代码的最底层,它不会打扰我,并且不会窃取我花费更多时间在其他代码中的空间。
您的想法/建议是什么?
答案 0 :(得分:4)
我已经多次看到与你的模式相似的模式,不要太担心它。我唯一要改变的是将初始化移到link
函数;指令中的控制器用于将API公开给其他指令(通过require
使用),所以我不会将它与其他东西混在一起。我尝试保持API /通信部分清洁并初始化/绑定link
函数中的内容。