使用CanJS的多页应用程序

Multiple Page Application Using CanJS

本文关键字:应用程序 CanJS 使用      更新时间:2023-09-26

我正在寻找一种在CanJS中从一个html页面导航到另一个html页的方法。以下是场景:

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})

我的要求是,当我点击忘记密码链接时,当前页面应该导航到forgetpassword.html。

一种方法是在ejs中填充链接的href属性,但这不是一个好的做法,因为当前页面控件将失去其重要性。我正在寻找一个优化的解决方案。如果我错了,请纠正我

在网上,我发现了CanJS的大多数单页应用程序示例。如果有人能给我介绍多页应用程序演示/示例,那就太棒了。

提前感谢:)

通过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'});