2017-08-22 44 views
0

我有一个单一页面应用程序,并且我希望每当有人打开我的url而不考虑状态时,只加载一次控制器。如何为单个页面应用程序的任何页面加载默认加载控制器

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

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或其他一些更好的方式下只在页面加载时调用一次。

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

+0

使用路由库(NG-路线或ui.router) – Hitmands

+0

我已经使用这个 – undefined

+1

把NG-视图或用户界面视图 – Vivz

回答

3

这听起来像你想要的东西,你应该把控制器上的ui-view的父DIV:

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

谢谢,这似乎是完美的解决方案。 – undefined

0

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

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

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