我正在使用ember.js建立一个聊天应用程序(我很新),具有以下细节:
/:thread_id
给予theese,我已经建立了一个应用程序
https://gist.github.com/Fed03/33da4a7c28c792af23cf(为了您的可读性,我已经合并了各种js文件)但问题出现在特定的消息状态。
根据我对余烬的理解,evrything"需要"一个路由以代理事物,但是如果你看一下代码和细节,就不需要message
路线,但是我需要一个MessageController
来管理单个消息说明。
显然,我对这个应用程序的架构做了一些非常错误的事情,所以如果有人告诉我一些建议会很棒!
提前谢谢!
答案 0 :(得分:1)
您想要使用{{render}} helper。
不是在线程模板中呈现每个模型,而是将模型传递给{{render}}
并使其处理显示消息,并且它将拥有它自己的控制器。
您需要为msg创建一个单独的模板,如下所示:
<script type="text/x-handlebars" data-template-name="message">
<div class="col-md-12">
<div class="well">
<div class="message-header">
<h5>{{user.fullname}}</h5>
</div>
{{body}}
{{isRead msg}}
</div>
</div>
</script>
然后将您的线程模板更改为:
<script type="text/x-handlebars" data-template-name="thread">
{{#each msg in model.messages}}
{{render 'message' msg}}
{{/each}}
<div class="col-md-12">
<div class="row">
<div class="col-md-5">
{{textarea value=message rows="3" class="form-control" data-thread=model}}
<div>
<button class="btn btn-primary pull-right" {{action 'send' model}}>
Submit
</button>
</div>
</div>
</div>
</div>
</script>
然后每个msg
都拥有自己MessageController
的实例,您可以使用它来处理它的状态。