2017-08-22 30 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>