如何在Meteor中重新加载(重新渲染)模板
我正在开发一款支持多种语言的聊天应用程序。该应用程序的基础工作良好,但我有小问题时,改变聊天室 每个房间的设置都支持两种语言。发送聊天信息时,您可以选择使用哪种语言发送信息。这是通过单击一个标志的小图标来完成的,该图标在两个标志图标之间切换。这方面的模板是:如何在Meteor中重新加载(重新渲染)模板,meteor,meteor-blaze,Meteor,Meteor Blaze,我正在开发一款支持多种语言的聊天应用程序。该应用程序的基础工作良好,但我有小问题时,改变聊天室 每个房间的设置都支持两种语言。发送聊天信息时,您可以选择使用哪种语言发送信息。这是通过单击一个标志的小图标来完成的,该图标在两个标志图标之间切换。这方面的模板是: <template name="chatBar"> <div id="chatBar" class="input-append input-prepend"> <form id="chatForm"&g
<template name="chatBar">
<div id="chatBar" class="input-append input-prepend">
<form id="chatForm">
<span class="add-on"><img src="/images/flags-iso/flat/16/{{chatMessageLang}}.png" id="lang"></span>
<input id="chatMessageLanguage" type="hidden" value="{{chatMessageLang}}">
<input id="chatMessageTarget" type="hidden" value="{{chatMessageTargetLang}}">
<input class="input-xxlarge" id="chatMessage" type="text" placeholder="← choose your language and then type your message here…">
<button class="btn" id="sendNewMessage" type="submit">Send</button>
</form>
</div>
如何使变量chatMessageTargetLang响应加载的聊天室每个聊天室都有自己的路由
谢谢
Adam属性是否有助于保持每个聊天室的语言?嗨,Dan。谢谢你的建议。聊天室本身的语言也不错。问题是聊天栏在更改聊天室时没有反应性地重新加载,因此聊天栏具有第一个加载的聊天室的语言设置。奇怪的是,聊天室时聊天信息TargetLang被正确更新。但查特朗不是
<template name="chat">
{{> chatroom}}
<div id="chatWindow">
<ul>
{{#each chats}}
<li class="{{messageClass}} {{_id}}">
<img src="/images/flags-iso/flat/16/{{langOriginal}}.png">
{{langTo.flagicon}}
{{user}}:
<span class="message" lang="{{langOriginal}}">{{original}}</span>
{{#if translated}}
<span class="message" lang="{{langTranslated}}">{{translated}}</span>
{{/if}}
{{#if correction}}
<i class="icon-remove"></i>
<span class="friendCorrection">{{correction}}</span>
{{/if}}
<span class="messageOptions">{{{messageOptions}}}</span>
</li>
{{/each}}
</ul>
</div>
{{> chatBar}}
</template>
Template.chatBar.helpers({
chatMessageLang: function() {
//return getCurrentChatroomInfo().langFrom.iso;
return Meteor.user().profile.langNative;
},
chatMessageTargetLang: function() {
var chatroomLang1 = getCurrentChatroomInfo().langFrom.iso;
var chatroomLang2 = getCurrentChatroomInfo().langTo.iso;
if(Meteor.user().profile.langNative == chatroomLang1){
return chatroomLang2;
} else {
return chatroomLang1;
}
}});
function getCurrentChatroomInfo(){
return Chatrooms.findOne({_id : Router.current().params['_id']})
}