[英]How to use emberjs action helper within custom registered helper?
我可能會在emberjs的車把模板中添加動作
<li>{{action "SomeAction" this}} {{this.name}}</li>
SomeAction被調用。
如何在自定義幫助程序中添加操作(這只是一個示例,我在其中有更多代碼):
Ember.Handlebars.registerHelper('foo', function(property, options) {
var bar = Ember.Handlebars.get(this, property, options);
var args = Array.prototype.slice.call(arguments, 1);
args.unshift("someAction");
args.unshift(bar);
var action = Ember.Handlebars.helpers.action.apply(this, args);
return new Ember.Handlebars.SafeString("<li "+new Ember.Handlebars.SafeString(action)+">"+bar.get("name")+"</li>");
});
這會創建相同的li標簽,但無法正常工作,當我單擊li標簽時,會出現此錯誤(錯誤消息來自discourse app):
未捕獲的錯誤:什么也沒有處理”。 如果您確實處理了該動作,則可能是由於從控制器中的動作處理程序返回true導致此錯誤起泡而導致的。
該錯誤表明當前上下文沒有控制器或路由處理指定的操作,即不包含具有在foo
helper中指定的功能的actions
屬性。
例如, http://emberjs.jsbin.com/zudiqewo/1/edit
js
Ember.Handlebars.registerHelper('foo', function(property, options) {
var action = Ember.Handlebars.helpers.action.apply(this, arguments);
return new Ember.Handlebars.SafeString("<li "+new Ember.Handlebars.SafeString(action)+">click here</li>");
});
如果在hbs
模板中將test
從{{foo "test"}}
重命名為{{foo "teest"}}
,則會拋出上述錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.