我所处的情况是,我需要为同一路由上的特定设备加载不同的模板。例如,登录页面是一个路由,但需要为3个设备(台式机、平板电脑、手机)加载不同的模板。第一步是设备滞留,但接下来最好的方法是什么呢?
媒体查询不是一个选项,因为我不想缩小我的桌面窗口,看到平板电脑或手机的布局。
发布于 2015-03-22 10:30:20
我将在服务器上进行浏览器检测,并根据设备提供不同的模板文件。编写三组模板并将它们编译成单独的Javascript文件,然后在页面加载时提供正确的Javascript文件。如果你以相同的方式命名和编译所有的模板,Ember甚至不会知道你有不同的模板。
发布于 2015-03-22 12:03:14
您可以通过覆盖您的路由内部的renderTemplate方法,根据某些条件显示不同的模板。以下是每次访问路由时呈现随机模板的示例:
App.ThatRoute = Ember.Route.extend({
renderTemplate: function() {
var random = Math.random();
console.log(random);
if(random > .5){
this.render('template1');
}
else {
this.render('template2');
}
}
});使用jsbin here
https://stackoverflow.com/questions/29189455
复制相似问题