首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Ember.js的action Helper传递参数?

如何使用Ember.js的action Helper传递参数?
EN

Stack Overflow用户
提问于 2012-02-08 00:52:52
回答 6查看 30.6K关注 0票数 20

我有一个项目列表:

代码语言:javascript
复制
  <ul>
    {{#each applications}}
      <li>
        <a {{bindAttr href="url"}} 
        {{action "appClicked" on="click"}}>                
           {{name}}
        </a>
      </li>
    {{/each}}
  </ul>

单击时,它将调用此模板所属的视图的方法appClicked。我希望将一些信息(例如,应用程序的名称)传递给appClicked方法。类似于,{{action "appClicked(name)" on="click"}}

这是可能的吗?如何实现?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-02-08 08:29:23

我在考虑更多类似的东西,因为您将可以通过实际视图访问更多内容。但是扎克,如果你能解释一下如果这不是你想要的,你到底想做什么?

代码语言:javascript
复制
App = Ember.Application.create();

App.peopleController = Ember.ArrayController.create({
    content: [ { name: 'Roy', url: '#' },
               { name: 'Mike', url: '#' }, 
               { name: 'Lucy', url: '#' } ]
});

App.PersonView = Ember.View.extend({
    tagName: 'li',
    content: null,
    linkClicked: function() {
        console.log(this.getPath('content.name'));
    }
});
代码语言:javascript
复制
<ul>
{{#each App.peopleController}}
    {{#view App.PersonView contentBinding="this"}}
        <a {{bindAttr href="content.url"}} {{action "linkClicked" on="click"}}>
            {{content.name}}
        </a>
    {{/view}}
{{/each}}
</ul>

票数 6
EN

Stack Overflow用户

发布于 2013-08-14 20:29:13

显然,Ember现在已经进化了,并且有了向操作传递参数的能力:

代码语言:javascript
复制
{{action "functionName" parameter}}

在您的情况下,这将是:

代码语言:javascript
复制
<a {{bindAttr href="url"}} 
   {{action "appClicked" name on='click'}}>                
       {{name}}
   </a>

但是,您可以传递模型中的任何属性(如id),而不是名称。

有关详细信息,请参阅http://emberjs.com/guides/templates/actions/

票数 19
EN

Stack Overflow用户

发布于 2013-08-28 03:25:51

The API says您可以传入多个参数。

html和把手:

代码语言:javascript
复制
{{officename}} 
<button {{action "actionTest" "hello" "goodbye" officename}}>See parameters through action in the console</button>

控制器:

代码语言:javascript
复制
actionTest: function(a, b, c){
   console.log(a);
   console.log(b);
   console.log(c);
},

See it in action in this jsbin

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9180366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档