Обновление: после реализации приведенного ниже предложения Роба Седжвика стало очевидно, что перенаправление работает только тогда, когда пользователь вручную "F5" обновляет браузер (Chrome). Мне нужно добиться того, что это происходит автоматически в коде, поэтому перенаправление происходит без необходимости горячего обновления пользователем. Спасибо за помощь в этой последней части.
В настоящий момент ManageTodosView из того, что я понимаю, является первым действием после входа пользователя в систему. Он печатает список элементов, созданных пользователем. Рабочий пример можно найти здесь http://parseplatform.github.io/Todo/, а код https://github.com/ParsePlatform/Todo
Я использую код для того, чтобы действительно заставить логины пользователей работать, я не должен беспокоиться о том, что выводит остальную часть кода, потому что долгосрочный план будет заключаться в его удалении, пока что его полезно поддерживать чтобы показать, что приложение функционирует правильно.
Я использую этот код в качестве базы для создания веб-приложения. На момент, когда пользователь вошел в систему, они отображают данные на одной странице.
Я хочу иметь возможность изменить это, чтобы после входа в систему пользователь перенаправлялся на другую страницу, и затем информация отображалась там.
Причина этого в том, что индексная страница - это только страница приземления/входа, и я хочу перенаправить их на более структурированную HTML-страницу с меню и т.д.
В коде JS я просто переадресовываю что-то вроде:
self.location="top.htm";
к этой области кода?
// The main view for the app
var AppView = Parse.View.extend({
// Instead of generating a new element, bind to the existing skeleton of
// the App already present in the HTML.
el: $("#todoapp"),
initialize: function() {
this.render();
},
render: function() {
if (Parse.User.current()) {
new ManageTodosView();
} else {
new LogInView();
}
}
});
Я добавил JS-код к этому JSFiddle
Обновить:
Чтобы решить проблему страницы, нуждающейся в ручном обновлении до перенаправления, вставьте
window.location.href="/someurl";
в следующий раздел кода в файле todoe.js и закомментируйте новый ManageTodosView(); код.
Parse.User.logIn(username, password, {
success: function(user) {
window.location.href="user_home.html";
//new ManageTodosView();
self.undelegateEvents();
delete self;
},
Я бы предложил более надежный шаблон для интеграции образцов Parse Todo с реальными приложениями. "Marionette" предлагает большую ценность в реальном мире.
Если вы потратите время на просмотр структуры приложения, а затем посмотрите на функцию "loginSuccess" (прокрутите до самой нижней части ссылки), ее довольно просто переадресовать. Вы можете использовать маршрутизатор, как показано, или вы можете использовать агрегированные события Marionette, которые выглядели бы так:
vent.trigger('header:loggedIn', _user);
somewhere else in any module within the app....
vent.on('header:loggedIn', function (user) {
that.setViewNew(user);
});
...
setViewNew : function (user) {
User = user;
var viewOptionsUser = {
collection : this.roleList,
events : {
'keypress #new-todo': 'createTaskOnEnter'},
parentUser : User};
this.headerRegion.show(new HeaderView(viewOptionsUser));
this.mainRegion.show(new RoleRoleListCompositeView(viewOptionsUser));
}
Попробуйте это тоже
window.open( 'URL', '_ родителя);
Попробуйте что-то подобное, чтобы перенаправить пользователя
window.location = 'www.google.com'