Мой вопрос в основном такой же, как и на this answer, но я не могу получить код для работы с ember 1.7.0 и & ember-cli.Как динамически загружать компоненты ember по имени в шаблон?
У меня есть widget
свойства в моей модели, и в моем шаблоне я хочу иметь что-то вроде:
{{#each question in questions}}
{{#with question}}
<label>{{title}}</label>
{{render-component widget params=params}}
{{/with}}
{{/each}}
и модели вопроса, который выглядит как:
{ id: 6,
title: "Is this a yes/no situation?",
help_text: 'Pick an option',
widget: 'yes-no',
params:
{
yes: {
text: 'You picked yes',
class: 'success'
},
no: {
text: 'Be careful, you picked no',
class: 'danger'
}
}
}
Я создал a render-component
хелпер, который содержит следующее:
import Ember from 'ember';
function renderComponent(componentPath, options) {
console.log('inside helper with comp=' + componentPath + ', opts=' + options);
var component = Ember.Handlebars.get(this, componentPath, options);
var helper = Ember.Handlebars.resolveHelper(options.data.view.container, component);
return helper.call(this, options);
}
export {
renderComponent
};
export default Ember.Handlebars.makeBoundHelper(renderComponent);
это не работает. component
не определено. Документы API для Ember.Handlebars.get не очень помогают объяснить, что такое параметр options
. Кроме того, в документах сейчас нет упоминания о методе resolveHelper
, поэтому я не знаю, устарел ли код в любом случае.
Как загрузить компоненты по имени из переменной?
Вы могли бы предоставить совместимую версию для Ember 1.10? Я пытаюсь загрузить компоненты по имени в блок {{#each}} и отправить им параметры. спасибо – Nexus
Просьба привести больше примеров того, как передать bindParam и другие параметры? http://stackoverflow.com/questions/29412559/how-to-render-component-helper-by-name-from-instance-field thx заранее –