0

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

index.html 包含一个带有忘记密码链接的登录表单(使用 ejs 构建)。

索引.html

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

控制.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。

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

在 Web 上,我找到了大部分 CanJS 的单页应用程序示例。如果有人可以将我指向多页应用程序演示/示例,那就太棒了。

提前致谢 :)

4

1 回答 1

0

通过 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'});
于 2014-04-19T01:13:27.057 回答