[英]Ember.JS - How to use multiple models, controllers and views in same page?
[英]Ember.js - multiple views on same page
刚开始学习Ember.js,并评估它是否适合我的项目。
我有多页应用程序,并且在每个页面上我都有不同的内容(组件),可以跨页面重用。 对于一个简单的方法,让我们考虑一下这就像Recipe Blog
主页:
单一食谱页面:
产品/成分视图:
产品内容(后端呈现的简单html)
评论块(通过Ember加载)
产品参考指南块(通过Ember加载)
等等..
所以基本上我有小的可重用组件
我希望它们全部独立加载,并且希望将它们包括在不同的页面中,并且它们的位置将取决于页面类型。 我希望每个组件都有独立的事件
跳过文档,我认为有几种解决方案:
1)对我的每个组件使用不同的Ember应用程序: 示例1
<script type="text/x-handlebars" data-template-name='app1-view'>
I am the App1 main view
</script>
<script type="text/x-handlebars" data-template-name='app2-view'>
I am the App2 main view
</script>
2)使用局部函数(可以将局部函数绑定到控制器并执行诸如loadNextPage等操作) 示例2
{{partial 'navbar'}}
{{outlet}}
{{partial 'footer'}}
3)使用命名插座示例3
{{outlet header}}
{{outlet body}}
{{outlet navBar}}
4)...?
也许Ember更适合单页应用程序? 我不想使用jquery ui小部件,并具有绑定/取消绑定和dom操作混乱的功能。
使用视图:
通常仅出于以下原因在Ember.js中创建视图:
当您需要复杂的用户事件处理时
当您要创建可重复使用的组件时
为每个可重用组件创建一个视图,并在需要时将其绑定到正确的模板。
让Ember为您处理视图和上下文的生命周期!
有关更多信息,请阅读: http : //emberjs.com/guides/views/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.