У меня есть эта навигация:AngularJS нг клик не работает с сконфигурированным контроллером
<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