流星教程只显示todo属于当前用户(handlebars.js {{#if}}条件中的逻辑运算符)

时间:2015-01-06 10:18:34

标签: meteor handlebars.js

请耐心,我是流星的新人。

我正在关注良好的入门教程 只是在玩耍。

现在我要显示 只有待办事项属于当前用户。

我意识到车把没有if表达式 声明和我碰到了这个有用的链接

Logical operator in a handlebars.js {{#if}} conditional

我试过了:

简单todo.html

<template name="task">
  {{#ifCond  owner  Meteor.userId() }}
    <li class="{{#if checked}}checked{{/if}}">
      <button class="delete">&times;</button>
      <input type="checkbox" checked="{{checked}}" class="toggle-checked" />
      <span class="text"><strong>{{username}}</strong> - {{text}}</span>
    </li>
  {{/ifCond}}
</template>

简单todo.js

Handlebars.registerHelper('ifCond', function(v1, v2, options) {
  if(v1 === v2) {
    return options.fn(this);
  }
  return options.inverse(this);
});

1)是否是设置车把帮手的正确位置?

但我没有看到任何待办事项:(

请帮帮我吗?

2 个答案:

答案 0 :(得分:1)

来自meteor docs:

  

请注意,您必须使用equals方法(或EJSON.equals)来比较它们; ===运算符不起作用。如果您正在编写需要处理可能是字符串或ObjectID的_id字段的通用代码,请使用EJSON.equals而不是===来比较它们。

http://docs.meteor.com/#/full/mongo_object_id

答案 1 :(得分:0)

只需编写帮助程序即可显示当前用户记录。

用于向当前用户显示记录。

{{#if currentusertodos}}
<li class="{{#if checked}}checked{{/if}}">
  <button class="delete">&times;</button>
  <input type="checkbox" checked="{{checked}}" class="toggle-checked" />
  <span class="text"><strong>{{username}}</strong> - {{text}}</span>
</li>
{{/if}}

todos集合中的userId必须包含当前用户的_id。

Template.task.helpers({
currentusertodos:function(){

  return todos.find({userId:Meteor.userId()}).count();
 }
});

通过这种方式你可以做到

我希望这对你有用。