模板工作正常(就显示的数据而言),但事件并非如此。特别奇怪,因为我有一个不同的模板,几乎完全相同的代码。
<template name="profile_sidebar">
{{#if opened}}
{{> profile_sidebar_contents}}
{{/if}}
</template>
<template name="profile_sidebar_contents">
{{#if dataReady}}
{{#unless equalsCurrentUsername profile.login}}
<span>
<a class="message-user"><i class="ion-chatbox"></i> Message</a>
</span>
{{/unless}}
{{/if}}
</template>
Template.profile_sidebar_contents.events({
'click .message-user': function(e,t){
// this is {}
// t.data is null
Session.set('selectedConversation', this._id);
Router.go('/messages');
}
});
谢谢!
答案 0 :(得分:0)
找到解决方案!
我将整个模板包装在{{#with profile}} ... {{/ with}}块中,然后添加了我需要在帮助器中返回的配置文件对象中的数据。似乎事件的上下文是空对象,因为事件目标不在范围内。
详见
我假设上下文默认为一个对象,其中包含所有助手的字段。防爆。我有
Template.profile_sidebar_contents.helpers({
profile: function(){ return something },
id: function() {return somethingelse }
});
我希望这个的上下文是{profile:something,id:somethingelse} 但似乎没有完成,上下文是空的。我把它移到了
Template.profile_sidebar_contents.helpers({
profile: function(){ return {profile:something, id:somethingelse} }
});
然后设置{{#with profile}} ... {{/ with}}并且可以访问配置文件帮助程序返回的对象,通过this.id可以通过this.id检索id.profile