工作,我有这个导航:AngularJS NG-点击不与配置的控制器
<ul class="dropdown-menu m-t-xs compact" style="float:right !important;right: 0px;">
<li ng-hide="$state.includes('root.projects')"><a ui-sref="portal.user_settings"><span class="icon glyphicon glyphicon-user"></span>User Settings</a></li>
<li ng-show="$state.includes('root.projects')"><a ui-sref="root.user_settings"><span class="icon glyphicon glyphicon-user"></span>User Settings</a></li>
<li class="divider"></li>
<li ng-controller="LoginCtrl"><a href="" ng-click="logout"><span class="icon glyphicon glyphicon-log-out"></span>Logout</a></li>
</ul>
但是,当我点击链接logout
,什么都不会发生。
这里是我的控制器:
'use strict';
function LoginCtrl($scope, Authentication, $window, $cookies, $http, $location) {
var _self = this;
_self.loginProcessing = false; //This is a flag for showing the loader animation while the wait for the login response.
_self.error = null;
_self.login = function(vm) { //Defines the login function as a variable on the LoginCtrl
_self.loginProcessing = true;
Authentication.Login(vm.email, vm.password).then(function(data){
_self.loginProcessing = false;
$window.sessionStorage['currentUser'] = JSON.stringify(data);
$location.path("/projects");
}).catch(function(err) {
_self.error = true;
_self.loginProcessing = false;
});
}
_self.logout = function() {
alert("CLICKED");
// Authentication.logout().then(function() {
// $window.sessionStorage['currentUser'] = null;
//
// $location.path("/login");
// });
}
}
angular.module('controllers').controller('LoginCtrl', LoginCtrl);
这里是配置的路由:
.state('logout',{
url: "/logout",
controller: "LoginCtrl",
templateUrl: 'views/logout.html',
})
我100%新AngularJS,所以请原谅我的无知。谢谢!
你是治疗的观点变量,如果它们没有被配置为$范围$范围,但控制器的一部分但是对于'controllerAs'来说。如何分配控制器来查看? – charlietfl
我在路由中将''controller'选项更改为'LoginCtrl'作为LoginCtrl',但它仍然不起作用。我不确定这是什么意思 – dennismonsewicz
这意味着你需要前缀所有控制器变量的视图与该别名和一个点 – charlietfl