我在控制器`
中有这个代码(function () {
'use strict';
var LoginController = function($scope, $http, $timeout,$location,User) {
$scope.user = {};
$scope.flags = {
error: false,
rememberMe: true
};
$scope.signin = function() {
$scope.errorMsg=false;
$scope.successMsg=false;
$scope.flags.loginInProgress=true;
User.login($scope.user.password,$scope.user.email)
.then(function(response) {
if (response.data.success) {
$scope.successMsg=response.data.message;
$scope.flags.loginInProgress=true;
$timeout(function () {
$location.path('shop');
},2000);
}else{
$scope.flags.loginInProgress=false;
$scope.errorMsg=response.data.message;
$scope.flags.error = true;
};
});
};
if (User.isLoggedIn()) {
User.getUser().then(function (response) {
$scope.user=response.data.user;
})
} else {
$location.path('login');
}
$scope.logout=function () {
User.logout();
$timeout(function () {
$location.path('home');
},2000);
};
};
LoginController.$inject = [
'$scope',
'$state',
'$timeout',
'$location',
'User'
];
angular
.module('pharmacy')
.controller('LoginController', LoginController)
}());`
我使用ui-router并在页面中使用{{user.name}},其中LoginController被声明它正在工作,但是我使用{{LoginController.user.name}},其中没有声明控制器它没有'工作。
可能是什么问题?
答案 0 :(得分:0)
尝试使用angular 1.5
提供的 controllerAs 语法quantmod
答案 1 :(得分:0)
您只能在该控制器所在的视图中访问控制器的范围。如果您想在应用程序的其他位置访问用户的信息,您应该将其存储在其他地方,例如提供商(例如工厂)。
检查以下jsbin:http://jsbin.com/vomifoyuqo/1/edit?html,js,console
display(wait for 2000)
display(wait for 2000)
display(wait for 2000)
display(wait for 2000)