Javascript 如何在ember.js中将参数传递给路由器操作

Javascript 如何在ember.js中将参数传递给路由器操作,javascript,ember.js,Javascript,Ember.js,在我的模板中: <a {{action doSomething someParam}}>my cool link</a> 但是,jqEvent始终是App.Router的一个实例。我希望传入我的参数。我错过了什么 谢谢。使用余烬,它工作得非常好,所以我怀疑您使用的是旧版本的余烬 jsFiddle: 传递给{{action}}的参数不被视为文本;它们被视为当前上下文中对象的键 见和 因此, 将尝试在当前控制器上查找someProperty属性。这是旧版本的Ember。没办

在我的模板中:

<a {{action doSomething someParam}}>my cool link</a>
但是,jqEvent始终是App.Router的一个实例。我希望传入我的参数。我错过了什么

谢谢。

使用余烬,它工作得非常好,所以我怀疑您使用的是旧版本的余烬

jsFiddle:


传递给
{{action}}
的参数不被视为文本;它们被视为当前上下文中对象的键

见和

因此,


将尝试在当前控制器上查找
someProperty
属性。

这是旧版本的Ember。没办法,我正在等待我们的余烬升级被合并。 但这不是原因,尽管路由器将发生变化

实际上是两部分,

  • 当操作冒泡到路由器时,操作被传递两个参数,路由器和jqEvent,参数附加在jqEvent.context
  • 当我在chrome控制台中检查参数时,我没有看到它,因为chrome有一个优化功能(至少在控制台中)可以去除未使用的参数。这真的不是余烬的错,但它肯定掩盖了所发生的一切

    {{action doSomething someProperty}

    doSomething:功能(路由器、jqEvent){ var someProperty=jqEvent.context; }


  • 你使用的是什么版本的emberjs?在RC1中,他们可以通过在文本周围加引号来传递文本。在这种情况下,我相信
    someProperty
    应该是
    jqEvent
    的一个实例。
    doSomething: function(jqEvent){
    
    }
    
    App.ApplicationRoute = Ember.Route.extend({
        events: {
            example: function(object) {
                console.log(object.get('name'));            
            }
        }
    });
    
    {{action doSomething someProperty}}