AngularJS初始化$ scope指令/控制器

时间:2014-07-23 06:55:34

标签: angularjs angularjs-directive

我将init()函数放在我的指令的return之外:

app.directive('myDirective', function()
{
    return {
        restrict: 'C',
        controller: function($scope)
        {
            init($scope);
        }
    }

    function init($scope) 
    {
        $scope.params = [];

        // Other initializations
    }
});

这是不好的做法还是坏主意?我只是不想在init()内放置controller,因为我觉得控制器内部的东西可以重复使用并连续运行。

我把它放在最后的一个原因是初始化发生了一次,我想把它放在代码的最底层,它不会打扰我,并且不会窃取我花费更多时间在其他代码中的空间。

您的想法/建议是什么?

1 个答案:

答案 0 :(得分:4)

我已经多次看到与你的模式相似的模式,不要太担心它。我唯一要改变的是将初始化移到link函数;指令中的控制器用于将API公开给其他指令(通过require使用),所以我不会将它与其他东西混在一起。我尝试保持API /通信部分清洁并初始化/绑定link函数中的内容。