新手的流星示例

时间:2015-11-03 01:58:50

标签: meteor

根据一本书的例子,我有我的.js文件

 func getColourFromPoint(point:CGPoint) -> UIColor {
    let colorSpace:CGColorSpace = CGColorSpaceCreateDeviceRGB()!
    let bitmapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.PremultipliedLast.rawValue)
    var pixelData:[UInt8] = [0, 0, 0, 0]
    let context = CGBitmapContextCreate(&pixelData, 1, 1, 8, 4, colorSpace, bitmapInfo)
    CGContextTranslateCTM(context, -point.x, -point.y);
    self.layer.renderInContext(context)

    var red:CGFloat = CGFloat(pixelData[0])/CGFloat(255.0)
    var green:CGFloat = CGFloat(pixelData[1])/CGFloat(255.0)
    var blue:CGFloat = CGFloat(pixelData[2])/CGFloat(255.0)
    var alpha:CGFloat = CGFloat(pixelData[3])/CGFloat(255.0)

    var color:UIColor = UIColor(red: red, green: green, blue: blue, alpha: alpha)
    return color
}

并在我的html文件中:

lists = new Mongo.Collection("Lists");

if (Meteor.isClient) { 
  Template.categories.helpers ({
    'Category': function(){
      return lists.find({}, {sort: {Category: 1}});
}})

我已将此数据输入到列表中,这些列表使用控制台对字段使用Category:

<body>
<div id="categories-container">
  {{> categories}}
</div> 
</body>

<template name="categories">  
<div class="title">my stuff</div>
  {{#each lists}}
    <div>
      {{Category}}
    </div>
  {{/each}}
</template>

但它没有输出数据。

5 个答案:

答案 0 :(得分:0)

我认为问题出在您的{{#each}}的上下文中,您似乎试图通过辅助函数访问mongo集合本身而非特定字段。 查看有关空格键的本教程,这是一篇非常好的阅读http://meteorcapture.com/spacebars/以及Meteor Docs部分http://docs.meteor.com/#/full/livehtmltemplates。我自己对Meteor相当新,但希望有所帮助。

答案 1 :(得分:0)

在您的示例中,您使用名称类别来表示两种不同的事物 模板助手功能的名称会返回列表项的数组
它是列表中字段项的名称。

{{#each Category}}是否在帮助返回的数组上运行

each内,您应该访问{{Category}}{{item}} 列表项目

答案 2 :(得分:0)

您只需致电助手lists而不是Category,您的代码即可使用:

Template.categories.helpers({
  lists: function () {
    return lists.find({}, {sort: {Category: 1}});
  }
});

{{#each lists}}表示:迭代集合游标(查找结果)或通过调用帮助程序lists得到的数组。这里的命名有些令人困惑,因为lists恰好也是你正在迭代的集合的名称。

each内部,上下文是lists文档。每个文档都包含一个Category字段,您要在div内输出。

推荐阅读:

答案 3 :(得分:0)

检查运行命令:流星列表

给出了您使用的包列表

如果 autopublish 包不在您要发布的列表中,请在此处订阅您的数据的简单示例:

//in server 
 Meteor.publish('lists',function(){
    return lists.find({}, {sort: {Category: 1}}); 
 })
//in client
Meteor.subscribe('lists');

更多Deatails:publish subscription

答案 4 :(得分:0)

首先:你的'类别'助手中的功能不应该在引号之间(不确定是否可能会出现问题)。

第二:您使用{{#each}}循环错误。 您正在调用“列表”集合,但您应该调用“类别”帮助程序。

<template name="categories">  
<div class="title">my stuff</div>
  {{#each Category}}
    <div>
      {{Category}}
    </div>
  {{/each}}
</template>

您的助手非常混乱,与您在#each循环中调用的字段具有相同的名称。

相关问题