В настоящее время я разрабатываю веб-приложение AngularJS.
У меня есть основной вид (Index), дочерний вид (Dashboard) и вид внука (Raiding The Rails).
http://localhost:4000/#/dashboard/raiding-the-rails/1
В представлении внука (Raiding The Rails) я показываю информацию о платье, относящуюся к идентификатору состояния /1
, каждое платье имеет указанный идентификатор состояния, например, /1
, /2
, /3
.
У меня есть контроллер/служба, отправляющая идентификатор состояния в console.log
(внутри родителя), и при просмотре raiding-the-rails/1
console.log
отображает {stateID: "1"}
. Если я изменю URL-адрес на raiding-the-rails/4
, console.log
не обновится, пока я не обновлю страницу.
Кроме того, когда я полностью обновляю браузер, console.log
выдает три объекта вместо одного?
Я просмотрел множество сайтов и пытался снова и снова пытаться понять это, я даже пытался настроить службу Watch, но это не помогло.
Если бы кто-нибудь мог мне помочь, я был бы очень признателен!
Спасибо.
Приложение:
(function(angular, undefined){
"use strict";
var am = angular.module('virtual-fitting', ['ui.router']);
am.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('dashboard', {
url: '/dashboard',
templateUrl: '../views/dashboard.html'
})
.state('dashboard.raidingtherails', {
url: '/raiding-the-rails',
templateUrl: '../views/dashboard.raiding-the-rails.html'
})
.state('dashboard.raidingtherails.dress', {
url: '/:id',
templateUrl: '../views/dashboard.raiding-the-rails.dress.html'
});
$urlRouterProvider.otherwise('/');
});
})(angular);
Сервис:
(function(angular, undefined) {
"use strict";
var am = angular.module('virtual-fitting');
am.factory('raidingService', function () {
var raidingService = {
stateID: null
};
return raidingService;
});
})(angular);
Родительский контроллер:
(function(angular, undefined) {
"use strict";
var am = angular.module('virtual-fitting');
am.controller('dashboardCtrl', function(raidingService) {
console.log(raidingService);
});
})(angular);
Дочерний контроллер:
(function(angular, undefined) {
"use strict";
var am = angular.module('virtual-fitting');
am.controller('raidingtherailsCtrl', function($state, $stateParams, raidingService) {
var self = this;
raidingService.stateID = $stateParams.id;
});
})(angular);