我正在构建一个新的Meteor应用程序,我无法弄清楚如何使用Handlebars添加JavaScript逻辑以console.log()在每个循环之前运行.在骨干中我会做,<% console.log(data); %>测试数据是否被传入.
我不知道如何使用Meteor和Handlebars这样做,我在他们的网站上找不到解决方案.
假设我有一个对象,someObject:
{
foo: "apple",
myArray: ["abc", "def"]
}
Run Code Online (Sandbox Code Playgroud)
还有一个看起来像这样的模板助手(并且工作正常):
getArray: function(){
var self = this;
self.myArray = self.myArray || [];
return self.myArray;
}
Run Code Online (Sandbox Code Playgroud)
我应该如何构造html来获取数组索引?
我试过了:
<template name="someObject"> // takes someObject as data
{{#each getArray}}
<div class="item" data-value="{{WHAT GOES HERE?}}">{{this}}</div>
{{/each}}
</template>
Run Code Online (Sandbox Code Playgroud)
在哪种情况下this成功返回"abc"和"def".这很好.但是如何才能将数组的索引放入属性中data-value?
我已经this.index直接尝试但它未定义.我也尝试过使用帮手:
<template name="someObject"> // takes someObject as data
{{#each getArray}}
<div class="item" data-value="{{getindex}}">{{this}}</div>
{{/each}}
</template>
Run Code Online (Sandbox Code Playgroud)
但是getIndex当我在console.log中时,在这个帮手中,this我看到:
String {0: "a", 1: "b", 2: "c", length: …Run Code Online (Sandbox Code Playgroud) 目前,如果我运行npm install,它会安装已安装软件包的更新版本.如何安装package.json文件中指定的确切版本?
为什么Meteor.js使用它自己的ID算法?
为什么不使用MongoDB的ObjectId()?
我最近使用以下命令部署了一个流星应用程序:
$ meteor deploy example.com
Run Code Online (Sandbox Code Playgroud)
以后(认为它是相同的)使用以下内容:
$ meteor deploy www.example.com
Run Code Online (Sandbox Code Playgroud)
它最终提供了两个不同版本的应用程序,一个托管在"example.com"中,另一个托管在"www.example.com"中.
我可以恢复其中一个部署吗?我还应该回复哪一个?
如果没有,我应该在我的域名提供商处设置什么样的配置?
Joao,谢谢你
我有一个带参数的简单路线:
this.route('article', {
path: '/article/:_id',
data: function() { return Articles.findOne(this.params._id); }
});
Run Code Online (Sandbox Code Playgroud)
我想在这里使用带有_id的pathFor把手助手:
{{#each articles}}
<li><a href="{{pathFor 'article' _id}}">{{title}}</a></li>
{{/each}}
Run Code Online (Sandbox Code Playgroud)
这不适用于将_id标记传递到url中...
我刚开始在流星上使用铁路由器.我需要在主页上显示图像.我能够使用客户端路由为'home'配置路由.对于我尝试google的静态文件,发现添加服务器端路由可能有所帮助.所以,我在服务器的router.js上添加了以下代码.
Router.map(function() {
this.route('files', {
path: '/files/:path(*)',
action: function() {
var path = this.params.path;
console.log('will serve static content @ '+path);
this.response.sendfile(path);
}
});
});
Run Code Online (Sandbox Code Playgroud)
当我尝试访问时http://localhost:3000/files/someImage.png,它表示没有定义路由/files/someImage.png.难道我做错了什么?有没有其他方法使用铁路由器提供静态文件?
我的应用程序开始崩溃,绝对没有理由.我回滚到我认识的版本,但它仍然崩溃.我从github克隆了一个我绝对知道正在工作的版本,因为我已经工作了一个星期.它不会开始.一切都是'未定义的' - 流星,用户界面,路由器,模板等.我没时间做这件事.如何从头开始完全卸载Meteor并重新安装?
奖励积分:为什么会发生这种情况,如何防止它再次发生?
如何使用skip()和limit()流星?
Post.find({"user_id":user_id}).skip(0).limit(5);
Run Code Online (Sandbox Code Playgroud)
当我执行上面的行服务器说
调用方法'Userpost'时出现异常TypeError:Object [object Object]没有方法'skip'
meteor ×10
javascript ×4
meteorite ×3
mongodb ×3
iron-router ×2
dns ×1
node.js ×1
npm ×1
npm-install ×1
spacebars ×1
templates ×1