Многостраничное приложение с использованием CanJS

Я ищу способ перехода с одной HTML-страницы на другую HTML-страницу в CanJS. Ниже приведен сценарий:

index.html содержит форму входа (сборка с использованием ejs) со ссылкой на забытый пароль.

index.html

<div id="container"></div>

control.js

    var loginForm=can.Control({
        init:function(element,options)
        {
          var frag=can.view('login.ejs',this.options);
          this.element.html(frag);
        },
        '#forgotPasswordLink click':function(el,ev)
        {
          //Wants to pass the control to forgotpassword.html. 
          //Also wants to pass the flow to forgotpassword controller with some data
        }
    })

new loginForm('#container',{data:data})

Мое требование заключается в том, что, когда я нажимаю на ссылку забытого пароля, текущая страница должна перейти к Forgotpassword.html.

Одним из способов является заполнение атрибута href для ссылки в ejs, но это не очень хорошая практика, так как текущие элементы управления страницы теряют свое значение. Я ищу оптимизированное решение. Пожалуйста, исправьте меня, если я ошибаюсь

В Интернете я нашел в основном примеры одностраничных приложений для CanJS. Если кто-то может указать мне на демо / пример многостраничного приложения, это было бы здорово.

Заранее спасибо:)

1 ответ

Самый простой способ перехода с веб-страницы на веб-страницу с помощью JavaScript - использовать свойство Window.location:

var App = can.Control.extend({
  defaults : {
    view : 'login.ejs',
    data : null
  }
}, {
  init : function(el, op) {
    el.html(can.view(op.view, {data : op.data}));
  }, 
  '#forgotPasswordLink click' : function(el, ev) {
    ev.preventDefault();

    window.location = 'forgotpassword.html';
  }
});

var app = new App('#container', {data : 'hello'});
Другие вопросы по тегам