Ember.js 使用Ember应用程序工具包扩展Ember DefaultResolver
我正在制作一个基于[video/15秒]的自定义解析器 这是一个让移动设备在加载“template.hbs”之前先查找“mob_template.hbs”的技巧 但我使用的是,它使用了以下的特殊版本: 我真的不知道那里发生了什么,或者我需要做什么来产生类似的功能。有人知道吗 我尝试过类似的方法,但没有解决任何问题:Ember.js 使用Ember应用程序工具包扩展Ember DefaultResolver,ember.js,ember-app-kit,Ember.js,Ember App Kit,我正在制作一个基于[video/15秒]的自定义解析器 这是一个让移动设备在加载“template.hbs”之前先查找“mob_template.hbs”的技巧 但我使用的是,它使用了以下的特殊版本: 我真的不知道那里发生了什么,或者我需要做什么来产生类似的功能。有人知道吗 我尝试过类似的方法,但没有解决任何问题: var App = Ember.Application.extend({ //... Resolver: Ember.DefaultResolver.extend({
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);
},
})
});
显然,parsedName不是EAK解析程序中模板名称的字符串,但它有一些表示模板名称的道具,parsedName.fullNameWithoutType是目标:
var CustomResolver = Resolver.extend({
resolveTemplate: function(parsedName){
var resolve = this._super(parsedName);
if (['foo','bar'].indexOf(window.special_prop) > -1){
var orig__parsedName_name = parsedName.name;
parsedName.name = parsedName.name + '_' + window.special_prop;
parsedName.fullName = parsedName.fullName + '_' + window.special_prop;
parsedName.fullNameWithoutType = parsedName.fullNameWithoutType + '_' + window.special_prop;
resolve = this._super(parsedName) || resolve;
}
return resolve;
} });
var App = Ember.Application.extend({ //... Resolver: CustomResolver });
var CustomResolver = Resolver.extend({
resolveTemplate: function(parsedName){
var resolve = this._super(parsedName);
if (['foo','bar'].indexOf(window.special_prop) > -1){
var orig__parsedName_name = parsedName.name;
parsedName.name = parsedName.name + '_' + window.special_prop;
parsedName.fullName = parsedName.fullName + '_' + window.special_prop;
parsedName.fullNameWithoutType = parsedName.fullNameWithoutType + '_' + window.special_prop;
resolve = this._super(parsedName) || resolve;
}
return resolve;
} });
var App = Ember.Application.extend({ //... Resolver: CustomResolver });