簡體   English   中英

如何在HTML中調用Rootscope功能-Angular Js

[英]How to call a rootscope fuction in html - Angular Js

我做了一個rootscope函數,實際上我在注銷用戶。 但是我不知道該怎么稱呼它。

我的職能是

    $rootScope.logout = function () {
            $cookies.remove('auth_token');
            $cookies.remove('role');
            $cookies.remove('status');
            $cookies.remove('id');
            $location.path('/signin');
//            window.alert("Logout Successfully");
            $rootScope.auth_token = $cookies.get('auth_token');
            $rootScope.role = $cookies.get('role');
            $rootScope.status = $cookies.get('status');
            $rootScope.id = $cookies.get('id');
            $rootScope.keyword_auth_token = 'Bearer ' + $rootScope.auth_token; //Need to store all of them 

            $rootScope.is_loggedin = false;
        };

我的看法是

<button ng-click="$root.logout()">Logout</button>

我嘗試了$root.logout()$rootScope.logout()但是它不起作用。

它應該僅在作用域上可用,因為$scope繼承自$rootScope 嘗試:

<button ng-click="logout()">Logout</button>

更新中...

由於您嘗試從任何控制器外部訪問$rootScope ,因此沒有子$scope繼承自$rootScope因此logout功能將無法通過繼承自動使用(如我之前所建議的)。

您必須改為在模塊的run塊中聲明$rootScope.logout函數。 有關此的更多信息,請閱讀angular文檔的Module Loading&Dependencies部分。

JS:

var app = angular.module('myApp', []);

app.run(function($rootScope){
  $rootScope.logout = function () {
      // ...
  }
});

現在logout功能應該可以像下面這樣調用:

HTML:

<button ng-click="logout()">Logout</button>

示例Plunk-在沒有子$ scope的情況下訪問$ rootScope

<form ng-controller="Your controller name" ng-submit="logout()">
  <button type="submit">Logout</button>
</form>

確保使用的控制器正確,因此請使用ng-submit傳遞函數。 確保您的按鈕設置為鍵入“提交”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM