0

请耐心等待,因为我是 Ember 的新手,并且我正在使用 ember.js,并且我正在尝试在 HTML 属性中传递模型 id,以便 jQuery 可以识别它有一个 id。所以,我在一个标志模板中这样做:

each step in steps
      tr
        td = step.position
        td = step.name
        td = step.address
        td
          a href='#' style='display:inline-block;' data-reveal-id="reviews_modal_#{step.id}" class='photos_link' Reviews

step 是一个 ember 对象/模型,我试图通过给它一个 id "data-reveal-id="reviews_modal_#{step.id}" 来引用它...

在 Chrome 中检查元素后,返回以下内容:

<a href="#" style="display:inline-block;" data-reveal-id="reviews_modal_&lt;script id='metamorph-13-start' type='text/x-placeholder'&gt;&lt;/script&gt;1&lt;script id='metamorph-13-end' type='text/x-placeholder'&gt;&lt;/script&gt;" class="photos_link">Reviews</a>

请注意,它似乎传递了正确的 step.id (1),但也传递了许多 ember 脚本标签,这不是我想要的。

所以我的快速问题是:如何在 HTML 属性中使用 step.id 属性,以便我可以使用 jQuery 唯一标识该标签?

感谢您的帮助——我是 Ember 新手!

4

1 回答 1

2

看看bindAttr。在您的控制器中,您可以定义一个属性,该属性返回您想要的任何属性。在您的模板中,您可以说{{bindAttr data-reveal-id="propertyName"}}

就像是:

App.PostController = Ember.Controller.extend({
  title: "the title"
});

并在您的模板中

{{#each post in posts}}
    <section {{bindAttr id="title"}} >   
        <!-- blah blah blah -->     
    </section>
{{/each}}

愚蠢的例子,但你明白了要点。

更新:顺便说一句,title 属性也可以是模型的一个属性。记住 Ember 以这种方式检查控制器 -> 模型 -> 路由器。如果要使用视图中定义的属性,请使用view.property

于 2013-05-07T16:24:55.987 回答