я после модуля:AngularJS: Компонент и зависимость инъекций
angular.module("individual-footprint")
.controller("individualFootprintController", individualFootprintController)
.value("currentUser");
контроллер для этого модуля:
function individualFootprintController($http, individualFootprintService, currentUser) {
var self = this;
$http.get("/user").success(function (data) {
if (data.name) {
currentUser = data;
self.authenticated = true;
}
})
И следующий компонент:
angular.module("individual-footprint")
.component('employeeInfoComponent', {
template:'Logged in as: <span ng-bind="$ctrl.user"></span>',
controller: function (currentUser) {
if (currentUser.name) {
self.user = currentUser.name;
}
}
});
Мой HTML выглядит следующим образом:
<div ng-controller="individualFootprintController as $ctrl">
<div ng-hide="$ctrl.authenticated">
<h1>Login</h1>
With Corporate Account: <a href="/login/corporate">click here</a>
</div>
<div ng-show="$ctrl.authenticated" >
<employee-info-component></employee-info-component>
</div>
Извините, я новичок в AngularJS, и, вероятно, я что-то неправильно использую. Мое предположение: .value("currentUser");
- глобальная переменная, я могу впрыснуть ее и изменить ее везде, где захочу. Но я получаю TypeError: Cannot read property 'name' of undefined
. Не могли бы вы предложить лучшее решение для моего глобального var?
Спасибо за ответ! Я вижу, что код компонента вызывает перед кодом 'individualFootprintController', я могу как-то контролировать порядок? –
@ Rudziankoŭ Вы могли бы показать мне свой HTML? как вы его размещаете по HTML? –
Сэр, я отредактировал мой вопрос, я бы хотел, чтобы запрос '$ http.get' отправлялся после входа в систему, а компонентный контроллер обрабатывался после' individualFootprintController', чтобы получить инициализированный 'currentUser' –