Robin Ward [ビデオ / 15 秒] の以下のパターンに基づいてカスタム リゾルバを作成しています。これは、モバイル デバイスに「template.hbs」をロードする前に「mob_template.hbs」を最初に検索させるトリックです。
App.Resolver = EmberDefaultResolver.extend({
resolveTemplate: function(parsedName){
var t = this._super(parsedName);
if App.mobileActive){
return this._super('mob_' + parsedName) || t;
}
return t;
}
});
ただし、特別なバージョンのリゾルバーを使用するEmber App Kitを使用しています。
そこで何が起こっているのか、または同様の機能を生成するために何をする必要があるのか 、私には本当にわかりません。誰でも何か考えがありますか?
私はこのようなことを試しましたが、何も解決されませんでした:
var App = Ember.Application.extend({
//...
Resolver: Ember.DefaultResolver.extend({
resolve: function(fullName) {
var parsedName = this.parseName(fullName),
resolveMethodName = parsedName.resolveMethodName;
if (!(parsedName.name && parsedName.type)) {
throw new TypeError("Invalid fullName: `" + fullName + "`, must be of the form `type:name` ");
}
if (this[resolveMethodName]) {
if (window.screen_type == 'mobile'){
var resolved = this[resolveMethodName](parsedName + '_mobile');
} else{
var resolved = this[resolveMethodName](parsedName);
}
if (resolved) { return resolved; }
}
return this.resolveOther(parsedName);
},
})
});