如何在 html - Angular Js 中调用 rootscope 函数
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
,其中没有继承自 $rootScope
的子 $scope
,因此 logout
函数将不会'不会通过继承自动可用(正如我之前建议的那样)。
您必须改为在模块的 运行 块 中声明 $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>
Sample Plunk - Accessing $rootScope where there is no child $scope
<form ng-controller="Your controller name" ng-submit="logout()">
<button type="submit">Logout</button>
</form>
确保您使用的控制器正确,因此它在范围内,使用 ng-submit 传递函数。确保您的按钮设置为类型 "submit".
我做了一个 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
,其中没有继承自 $rootScope
的子 $scope
,因此 logout
函数将不会'不会通过继承自动可用(正如我之前建议的那样)。
您必须改为在模块的 运行 块 中声明 $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>
Sample Plunk - Accessing $rootScope where there is no child $scope
<form ng-controller="Your controller name" ng-submit="logout()">
<button type="submit">Logout</button>
</form>
确保您使用的控制器正确,因此它在范围内,使用 ng-submit 传递函数。确保您的按钮设置为类型 "submit".