У меня есть профиль
Remon.ProfileRoute=Ember.Route.extend({
activate: function() {
console.log("act");
},
model: function(params){
return this.store.find("profile",params.profile_id);
}
});
и вот мой router.js
Remon.Router.map(function(){
this.route("news");
this.resource("profiles");
this.resource("profile",{path:'profile/:profile_id'},function(){
this.route("photos");
});
});
и моя ссылка на помощника
{{#link-to "profile" 1}}another profile {{/link-to}}
когда я посещаю профиль с главной страницы профилей, он работает хорошо, и метод активации также работает, но когда я нахожусь на странице профиля и пытаюсь посетить другой профиль, URL не изменен, но данные модели для второго профиля загружаются с главной страницы профилей при нажатии по профилю
Attempting transition to profile.index ember.js?body=1:3462
Transition #33: profile: calling beforeModel hook ember.js?body=1:3462
Transition #33: profile: profile: resolving provided model ember.js?body=1:3462
Transition #33: profile: calling afterModel hook ember.js?body=1:3462
Transition #33: profile.index: calling beforeModel hook ember.js?body=1:3462
Transition #33: profile.index: calling deserialize hook ember.js?body=1:3462
Transition #33: profile.index: calling afterModel hook ember.js?body=1:3462
Transition #33: Resolved all models on destination route; finalizing transition. ember.js?body=1:3462
act profile_route.js?body=1:3
Transitioned into 'profile.index' ember.js?body=1:3462
Transition #33: TRANSITION COMPLETE
когда я нажимаю на другой профиль на одной странице профиля, переход к новой модели не происходит, но шаблон изменен на новые данные, но url сохраняет предыдущий
Transition #34: profile: profile: resolving provided model ember.js?body=1:3462
Transition #34: profile: calling afterModel hook ember.js?body=1:3462
Transition #34: profile.index: calling beforeModel hook ember.js?body=1:3462
Transition #34: profile.index: calling deserialize hook ember.js?body=1:3462
Transition #34: profile.index: calling afterModel hook ember.js?body=1:3462
Transition #34: Resolved all models on destination route; finalizing
в консоли он остановился на
Resolved all models on destination route; finalizing transition.
и "Переход в" профиль "не появился, а метод активации тоже не срабатывает
Обновить
Я думаю, что нашел, где ошибка, у меня есть несколько макетов
Remon.MainLayoutView = Ember.View.extend({
didInsertElement : function(){
console.log("pr");
this._super();
this.$('#simple-menu').sidr({
name: 'sidr-left',
side: 'left',
source: '#myside',
renaming: false
});
},
willAnimateIn : function () {
this.$().css("opacity", 0);
},
animateIn : function (done) {
this.$().fadeTo(500, 1, done);
},
animateOut : function (done) {
this.$().fadeTo(500, 0, done);
},
layoutName: 'layouts/application' });
Remon.ProfileView=Remon.MainLayoutView.extend();
после удаления метода animateout он работает сейчас
Согласно документам для активизации:
Этот крючок выполняется, когда маршрутизатор входит в маршрут. Он не выполняется, когда изменяется модель маршрута.
Похоже, прежде чемМодель может быть лучшим местом для размещения этого кода, но я не уверен, каково ваше намерение. Что вы хотите сделать?
При этом ваш URL-адрес должен измениться при изменении моделей на странице profile
. Как выглядит ваша link-to
?
Вот пример проекта с вашим маршрутизатором и правильным изменением URL.
Полноэкранное приложение (чтобы увидеть изменение URL)
Я попытался получить библиотеку, на которую вы ссылались (Sidr), чтобы работать, но я не могу (в разумные сроки). Я получаю Uncaught TypeError: Object [object Object] has no method 'sidr'
в консоли.