MeteorJS:与Backbone.js的路由(MeteorJS: Routing with Ba

2019-09-19 10:10发布

我试图实现与我MeteorJS应用BackboneJS路由器。 当你调用的URL的“localhost:3000/1”我的路由器存储ID“1”的会议。 从那以后,我想从会议采取的ID,并用它在我的查询从我的收藏中选择的对象。 但每当我试图在我的查询中使用一个会话属性失败。 所以我想知道是否有与MeteorJS,为什么我的查询失败路由更好的办法。

test.js

Meteor.subscribe("test");

Test = new Meteor.Collection("test");

Session.set("id", null);

Template.hello.test = function () {
  var avg = 0, total = 0, cursor = Test.find(), count = cursor.count();
  cursor.forEach(function(e)
  {
    total += e.number;
  });
  avg = total / count;

  var session_id = Session.get("id");

  var test = Test.findOne({id: session_id}); //doesn't work
  if (test) {
    test.avg = avg;
  }

  return test;
}

//ROUTER
var TestRouter = Backbone.Router.extend({
  routes: {
    ":get_id":    "get_id" 
  },
  get_id: function (get_id) {
    Session.set("id", get_id);
    console.log(get_id);
  }
});

Router = new TestRouter;

Meteor.startup(function () {
  Backbone.history.start({pushState: true});
});

的test.html

<head>
  <title>test</title>
</head>

<body>
  {{> hello}}
</body>

<template name="hello">
  <h1>Hello World!</h1>
  {{#if test}}
    {{#with test}}
      ID: {{id}}  Name: {{name}}  AVG: {{avg}}
    {{/with}}
  {{/if}}
</template>

model.js

Test = new Meteor.Collection("test");

Test.remove({});

if (Test.find().count() < 1) 
{
    Test.insert({id: 1,
                 name: "test1",
                 number: 13});

    Test.insert({id: 2,
                 name: "test2",
                 number: 75});
}

Meteor.publish('test', function () {
  return Test.find();
});

Answer 1:

我调试的代码,并找出在收集“身份证”是一个整数,而SESSION_ID是一个字符串。 您需要parseInt函数转换SESSION_ID。

我用page.js路由,这一点,从“TJ Holowaychuk”佳作“由快递路由器启发微客户端侧路由器”。

我强烈建议它,因为流星和骨干在型号/收集和查看/模板一些功能的碰撞。



Answer 2:

吉峰是正确的的意义,如果你只需要那么路由功能page.js是不够好。

冀丰和我在同一个小组。 我们必须结束“流星和骨干在型号/收集和查看/模板一些功能冲突”,直到最近。 由于我们的两个流星和骨干的了解更深入,这一结论是需要重新评估。 请参考我最后的实验代码BBCloneMail-ON-流星 :德里克贝利的BBCloneMail修改后在流星运行。 关键是要落实在流星的收集骨干存储插件线。 一旦插件布线生效时,仅存在少量的修改需要。



Answer 3:

您可能会发现感兴趣铁路由器-这是特定的流星“知道你的订阅,数据源,并帮助您采取共同关心的问题”: https://github.com/EventedMind/iron-router



文章来源: MeteorJS: Routing with Backbone.js