2014-05-07 92 views
1

我想要一個包來公開一個模板。我設法讓模板正常工作,但我無法爲其添加代碼。如何在包中包含模板代碼

這裏是什麼工作:

package.js

Package.describe({ 
    summary: "Dashboard" 
}); 

Package.on_use(function(api){ 
    api.use('coffeescript', ['client', 'server']); 
    api.use('templating', 'client'); 

    api.add_files(['dashboard.html'], 'client'); 
}); 

dashboard.html

<template name="dashboard"> 
    <h1>Hello Dashboard</h1> 
</template> 

然後我就可以使用它在我的應用程序,像這樣:

{{> dashboard}} 

這裏是行不通

package.js

Package.describe({ 
    summary: "Dashboard" 
}); 

Package.on_use(function(api){ 
    api.use('coffeescript', ['client', 'server']); 
    api.use('templating', 'client'); 

    api.add_files(['dashboard.html', 'dashboard.coffee'], 'client'); 
}); 

dashboard.html

<template name="dashboard"> 
    <h1>Hello Dashboard</h1> 
    {{name}} 
</template> 

dashboard.coffee

Template.dashboard.helpers 
    name: -> "John Doe" 

的錯誤是:

Uncaught TypeError: Cannot read property 'helpers' of undefined

+1

只要將coffeescript放入'Meteor.startup'塊中,它應該可以正常工作。 – richsilv

+0

@richsilv它的工作原理,但我怎麼沒有看到大氣中的任何包使用Meteor.startup模板代碼?他們都直接使用Template.blah.helpers。 – Manuel

回答

0

嘗試在使用列表中添加句柄api.use(['templating','handlebars'],'client');

+0

同樣的錯誤發生 – Manuel

+0

'api.use(['templating','spacebars','ui'],'client')'? –

+0

同樣的錯誤,當我不把代碼包裝在像richsilv提到的Meteor.startup塊中。不知道爲什麼。 – Manuel

0

您可能會檢查其使用的CoffeeScript和模板,在你的情況下常用軟件的源代碼 - 就像accounts-entry

下面是它的package.js

https://github.com/Differential/accounts-entry/blob/master/package.js

所以,最重要的是:

api.use([ 
    'templating', 
    'handlebars', 
    'coffeescript'] 
    , 'client'); 
+0

同樣的錯誤,當我不把代碼包裝在像richsilv提到的Meteor.startup塊中。不知道爲什麼。 – Manuel

相關問題