如何为单个页面应用程序的任何页面加载默认加载控制器

时间:2017-08-22 15:54:39

标签: angularjs ng-controller

我有一个单页应用程序,我想只要有人打开我的网址就会加载一个控制器而不管状态如何。

我有一个像这样的控制器:

app.controller('someController', ['$scope', function($scope){
    $scope.somefunction = function(){
      console.log("Some function is called ");
    }
}])

我希望当有人打开我的任何页面时,只能加载一次。

目前我尝试在我的header.html文件中添加如下内容:

<div class="" ng-controller="someController"></div>

这样我可以为任何页面调用此控制器,但问题是如果用户更改页面,它将每次调用。

我认为可能有某种方法可以在app.js下添加此功能,或者在页面加载时只调用一次更好的方法。

任何人都可以在这里帮助我。

2 个答案:

答案 0 :(得分:3)

这听起来像是你想要的,你应该把控制器放在ui-view的父div上:

<div class="container" ng-controller="someController">
    <div ui-view></div>
</div>

答案 1 :(得分:0)

您可以使用Cookie。在函数内部,您可以在加载后存储cookie,每次加载时都可以检查cookie,并根据该cookie读取,您可以执行代码或不执行代码。

另一种方法是你可以在init上调用该函数。

<div class="" ng-controller="someController" data-ng-init="somefunction()"></div>