Angular指令运行两次

时间:2015-08-11 14:42:41

标签: angularjs angularjs-directive

我的主页上有以下html:

<div ui-view resource-loader></div>

我的自定义指令是资源加载器。当我加载主页面时,它运行一次。但是当我导航到mainpage.html#/ page1时,它再次运行。我的问题是,因为它再次运行,这意味着当我导航到page1然后再次加载时,资源加载器指令被删除了吗?

指令代码,没什么特别的:

Directives.directive('resourceLoader', function (Helper) {
return {
    link: function (scope, elem, attrs) {
        Helper.callingSomeFinction();

       }
}

});

1 个答案:

答案 0 :(得分:0)

是的,它再次加载。使用ui-view并更改状态时,会加载具有自己范围的新控制器。正如您在指令中看到的那样,它需要一个范围。这个范围(因为你的html)是你所在的州。因此,当状态发生变化时,必须有一个新的指令。