Я только начал изучать стек MEAN и пытаюсь создать страницу аутентификации с нуля (хотя я знаю, что могу использовать из коробки но я делаю это, чтобы иметь фоновые знания), но я считаю, что немного сложно обновить тексты на моем навигаторе. Мой index.html
выглядит следующим образом;Как передать данные из ng-view в navbar, расположенные в index.html в Agularjs
<nav class="navbar navbar-default navbar-fixed-top" ng-controller="HeadController">
<div class = "container-fluid">
<ul class="nav navbar-nav navbar-right">
<li><a href="#">{{user.name}}</a></li>
</ul>
</div>
</nav>
<div class="container" ng-view></div>
Мой app.js
выглядит следующим образом;
var app = angular.module('app',['ngRoute'])
.service("userService", function() {
this.user = {};
this.getUser = function() {
return this.user;
};
this.setUser = function (user) {
this.user = user;
};
})
.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/login', {
templateUrl: 'partials/login.html',
controller: 'LoginCtrl as login'
})
.when('/user/profile',{
templateUrl: 'partials/profile.html',
controller: 'ProfileCtrl as profile'
})
.otherwise({
redirectTo: '/login'
});
}]);
app.controller("HeadController", [
'$scope',
'userService',
function ($scope, userService) {
$scope.user = userService.getUser();
}]);
app.controller("LoginCtrl", [
"$location",
"userFactory",
"userService",
function ($location, userFactory, userService) {
var login = this;
login.user = {
username: '',
password: '',
isRemember: true
};
login.login = function() {
userFactory.login(login.user)
.success(function (user) {
userService.setUser(user);
$location.path("/user/profile");
})
.error(function (err) {
console.log(err);
});
};
}]);
, наконец, мой userFactory.js
выглядит следующим образом;
function login(user) {
return $http({
url: '/api/login/',
method: "POST",
data: user,
headers: {
'Content-Type': 'application/json'
}
});
}
return{login:login};
Всякий раз, когда я войти в систему, я ожидаю {{user.name}}
быть обновлен, но этого не происходит. Я не знаю, как это сделать. Что я могу сделать, чтобы это произошло?
учитывая, что вы начинаете новые .. использовать компоненты и компонентную маршрутизацию .. было бы проще понять ... – harishr
@entre Пожалуйста, можете ли вы быть любезны, чтобы объяснить? –