[英]how do I pass params to a router action in ember.js
在我的模板中:
<a {{action doSomething someParam}}>my cool link</a>
在路由器中
doSomething: function(jqEvent){
}
但是,jqEvent始終是App.Router的實例。 我希望傳遞我的參數。我缺少什么?
謝謝。
使用最新版本的Ember可以正常工作,因此我懷疑您使用的是Ember的舊版本。
jsFiddle: http : //jsfiddle.net/G4esk/
App.ApplicationRoute = Ember.Route.extend({
events: {
example: function(object) {
console.log(object.get('name'));
}
}
});
您傳遞給{{action}}
的參數不會被當作文字。 它們被視為當前上下文中對象的鍵。
參見https://github.com/emberjs/ember.js/issues/1759和https://github.com/emberjs/ember.js/issues/1796 。
從而,
{{action doSomething someProperty}}
將嘗試在當前控制器上查找someProperty
屬性。
它是Ember的舊版本。 無濟於事,我目前正在等待我們的Ember升級合並到一起。但這不是原因,盡管路由器將在變化。
實際上是兩個部分,
當我在chrome控制台中檢查參數時,我沒有看到它,因為Chrome進行了一項優化(至少在控制台中),可去除未使用的參數。 這確實不是Ember的錯,但它確實掩蓋了正在發生的事情。
{{action doSomething someProperty}}
doSomething:function(router,jqEvent){var someProperty = jqEvent.context; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.