У меня есть проблема, которую я не могу создать с помощью светильников в этом jsbin.Ember.js - Получить LinkView для повторного рендеринга в помощнике руля
Приведенные выше код действительно обертка ссылки к Рулям помощника:
Ember.Handlebars.registerHelper('resource-link-to', function(name, options) {
var args = Array.prototype.slice.call(arguments, 1);
var resource = this.get(name);
var resourceRoute = resource.humanize();
if (!options.fn) {
options.types = ['STRING', 'STRING', 'ID'];
options.contexts = [this, this, this];
args.unshift(name);
args.unshift(resourceRoute);
args.unshift(resource.get('displayName'));
} else {
options.types = ['STRING', 'ID'];
options.contexts = [this, this];
args.unshift(name);
args.unshift(resourceRoute);
}
var observer,
_this = this;
if (!resource.get('isLoaded')) {
observer = function() {
if (resource.get('isLoaded')) {
//WHAT CAN I DO HERE TO GET THE LinkView to rerender?
return resource.removeObserver('isLoaded', observer);
}
};
resource.addObserver('isLoaded', observer);
}
return Ember.Handlebars.helpers['link-to'].apply(this, args);
});
То, что я хочу достичь, это родовая ссылка к помощнику, который принимает любого из моих моделей уголька-данных и возвращает ссылка:
{{resource-link-to contact}}
{{resource-link-to user}}
т.д.
Это прекрасно работает с сантехникой, но не работает с реальным адаптером, так как модель не всегда загружается, когда код перенаправляет Exec на реальную связь - с помощником или, возможно, другим способом обойти эту проблему?
То, что я хотел сделать, это создать наблюдателя, который повторно визуализирует LinkView, когда ресурс загружается так:
var observer,
_this = this;
if (!resource.get('isLoaded')) {
observer = function() {
if (resource.get('isLoaded')) {
//WHAT CAN I DO HERE TO GET THE LinkView to rerender?
return resource.removeObserver('isLoaded', observer);
}
};
resource.addObserver('isLoaded', observer);
}
Anybody любая идея, как я могу получить LinkView повторного рендеринга?
Это забавная идея, я не вижу никаких областей шаблонов, которые будут отображаться до возвращения модели асинхронного вызова. – Kingpin2k
Другим способом может быть подкласс LinkView, который что-то делает. Мне нужно лучше понять, как работает LinnkView. – dagda1
link view - связанный помощник, вы пробовали просто использовать Em.set на объекте args и посмотреть, обновляется ли ссылка? – Kingpin2k