Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在CanJS中实现路由器_Javascript_Canjs_Canjs Routing - Fatal编程技术网

Javascript 如何在CanJS中实现路由器

Javascript 如何在CanJS中实现路由器,javascript,canjs,canjs-routing,Javascript,Canjs,Canjs Routing,我正在申请帮助。我已经建立了一个类似的应用程序的帮助下,这一个。我的应用程序使用的是d3图表,而不是它使用的图表。我的应用程序将路由器初始化为 var patientStatus = new PatientStatus('#application', {'credentials':Credentials,'secret':Secret}); 现在,如果我想实现路由器,那么应该做什么更改? 下面是我的JSFIDLE,介绍了这两种实现。第一个正在工作。但是后面我初始化路由器的部分似乎不起作用。

我正在申请帮助。我已经建立了一个类似的应用程序的帮助下,这一个。我的应用程序使用的是d3图表,而不是它使用的图表。我的应用程序将路由器初始化为

  var patientStatus = new PatientStatus('#application', {'credentials':Credentials,'secret':Secret});
现在,如果我想实现路由器,那么应该做什么更改? 下面是我的JSFIDLE,介绍了这两种实现。第一个正在工作。但是后面我初始化路由器的部分似乎不起作用。

谁能帮帮我吗

以下是一个演示路由工作原理的示例:

  var Router = can.Control({
    defaults: {}
  }, {
    init: function() {
      // this.element.html(can.view('#index', {}));
    },

    ':type/:id route': function(data) {
        console.log('Type:', data.type);
        console.log('Id:', data.id);
    }
  });

  can.route.ready(false);
  new Router('#content');
  can.route.ready(true);

基本上,您要做的是初始化命名占位符,并告诉控制器这应该由
路由
处理器处理。现在,如果您转到像
#这样的URL!test/23
处理程序的数据将包含
类型
id
属性。

嘿,谢谢。它正在工作。我按照你的建议实现了你的,但是现在我的问题是只调用了第一个控制器,其余的直接路由到同一个控制器。我有很多路线,如项目,状态,细节等。。。运行fiddle中提到的代码后,每个链接都会显示projects视图。以下是JSFIDLE:。我的代码中有错误吗?我的URL如下1.MyProjectHub/index.html#!projects,2./MyProjectHub/index.html#!状态,3./MyProjectHub/index.html#!详细信息您不需要
。表示一个变量。如果您想匹配实际路线,只需像
projects route
那样编写它,它将完全匹配
#!项目