【发布时间】:2016-11-14 12:23:02
【问题描述】:
这个问题更多是关于了解其他人的观点以拥有更具可扩展性的 Ember.JS 应用程序,并阐明处理这种情况的最佳方法是什么。
我有一个名为 posts.hbs 的模板,我为移动设备和桌面设备提供了完全不同的结构。
但是,所有功能都是相同的,这意味着在我的控制器中,在桌面上调用的相同操作和函数在移动设备上调用。
为了验证用户是使用移动设备还是台式机访问网站,我在我的模板中使用了以下条件:
{{#if dekstop}}
{{!-- desktop structure (about 250 lines!) --}}
{{else}}
{{!-- mobile structure (about 250 lines!) --}}
{{/if}}
这里的问题是,因为移动和桌面结构都发展了很多组件和 HTML,所以我有一个超过 500 行的代码。它太大了,维护这段代码变得很混乱。
我看到的另一种选择是创建两个不同的模板:
- posts-desktop.hbs
- posts-mobile.hbs
还有:
- 控制器/posts-desktop.js
- 控制器/posts-mobile.js
还有:
- 路由/posts-desktop.js
- route/posts-mobile.js
然后在我各自的控制器和路由上,我可以调用包含所有常见功能的 mixin。这样,我将功能保存在一个地方,而我的模板可以放在不同的地方。
附加信息:
- 我正在使用 Ember.JS 1.11.0
【问题讨论】:
标签: javascript ember.js responsive-design scalability