我的問題與this answer基本相同,但我無法使用代碼使用ember 1.7.0和& ember-cli。如何在模板中動態加載按名稱排列的組件?
我在我的模型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
未定義。 Ember.Handlebars.get的API文檔對於解釋options
參數是什麼並不是很有幫助。另外,現在文檔中沒有提及resolveHelper
方法,所以我不知道代碼是否已過時。
如何從一個變量名稱加載組件?
你能爲Ember 1.10提供一個兼容的版本嗎?我試圖在{{#each}}塊中按名稱加載組件,並向它們發送參數。謝謝 – Nexus 2015-02-22 08:06:38
請給出更多的例子如何通過bindParam和其他參數? http://stackoverflow.com/questions/29412559/how-to-render-component-helper-by-name-from-instance-field thx提前 – 2015-04-02 13:02:12