[英]Ember: How to bind action to code generated with JS
我有一個簡單的視圖,它根據給定的items
數組(簡化的代碼)呈現一組圖像,因為我需要收集一些其他數據來“構建”所需的類名,所以使用它:
App.MyView = Ember.View.extend({
buildTemplate: function () {
var itemz = this.get('items');
var classname = 'classNameDependingOnSomeCalculations...';
var out = '<div>';
$.each(itemz, function (index, obj) {
out += '<img {{action myActionHere}} src="' + obj.href + '" alt="" class="'+classname+'"/>';
});
out += '</div>';
return out;
}.property('view'),
defaultTemplate: Ember.Handlebars.compile(
"<div>{{{view.buildTemplate}}}</div>"
)
});
在模板中,我將其用作
{{#each myObj in myCollection}}
{{view App.MyView itemsBinding="myObj.items" otherBinding="otherProps" }}
{{/view}}
不幸的是,這種方式Ember而不是綁定動作將{{action myActionHere}}
直接放入代碼中...
構建動態模板時如何綁定動作?
我正在使用Ember 1.1.2
PS或者也許我應該使用其他方法來構建此視圖?
正如您在此處所介紹的那樣,有一種解決方法可以使視圖起作用。但是,實際上,這並非余燼方法。 如果出於某種原因您需要這種方法,我將為此提供一個答案,但我將致力於解決潛在的問題。
與其像此處所示那樣執行操作,不如直接在JSP中使用類似於以下代碼的代碼:
{{#each myObj in myCollection}}
<div>
{{#each item in myObj.items}}
<img {{action myActionHere}} src={{item.href}} alt='' class={{classNameFunction}}/>
{{/each}}
</div>
{{/each}}
如果你的理由想這樣做,因為一個觀點是,這樣你可以在不重寫代碼重用此功能,看看泛音這是專門為這個目的而設計的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.