使用CanJS的多页应用程序

时间:2014-04-17 16:04:59

标签: javascript jquery canjs canjs-routing

我正在寻找一种方法来从一个html页面导航到CanJS中的另一个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})

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

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

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

提前致谢:)

1 个答案:

答案 0 :(得分: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'});