让我们说我有一个名为" Article"只有一个名为" title" ...
的属性我可以编写hanblebars来编辑文章属性,如下所示:
<span>Title</span><span>{{input value=title}}</span>
Ember /把手神奇地将输入框的值绑定到&#34;标题&#34;财产价值。
没问题。但我正在开发一个项目,我需要根据模型定义模型动态生成车把代码。
例如,我不知道有一个名为&#34; title&#34;的属性,而是转而进入&#34; modelFields&#34;列表在模型定义模型中。
所以,车把将是这样的:
查看以下代码:
{{#each modelField in modelFields}}
<span>modelField.displayName</span><span>{{input value=modelField.propertyName}}</span>
{{/each}}
&#34;标题&#34;的结果HTML财产将是:
<span>Title</span><span><input value="title"></span>
现在这是我的问题,有没有办法让这个值从propertyName(在这个例子中为title)动态地由ember作为绑定属性标题处理,而不是字符串标题?
澄清一下,有没有办法解决这个问题:
{{#each modelField in modelFields}}
<span>modelField.displayName</span><span>{{input value=modelField.propertyName}}</span>
{{/each}}
被视为此(标题是绑定属性):
<span>Title</span><span>{{input value=title}}</span>
而不是这个(标题是一个字符串):
<span>Title</span><span><input value="title"></span>
我尝试了视图,组件,没有运气。
答案 0 :(得分:1)
我在另一篇文章中找到答案,帮助我找到解决方案。帖子是:
Ember.js: TextField with dynamic binding
虽然,为了我的目的,我不得不稍微调整他/她的解决方案:
Ember.Handlebars.helper('dataTextField', function (key, options) {
options.hash.valueBinding = 'controller.' + key;
return Ember.Handlebars.helpers.input.apply(this, [options]);
});
在我打电话的模板中:
{{#each modelField in modelFields}}
<span>{{modelField.displayName}}</span>
<span>
{{dataTextField modelField.name}}
</span>
{{/each}}