Ember.js如何生成ID?

时间:2015-03-23 10:41:18

标签: javascript ember.js

正如here所述,使用ember.js,此代码:

{{#each}}
<div>
 <h1>{{MyComponent}}</h1>
</div>
{{/each}}

呈现类似:

<div id="ember180" class="ember-view">
 <h1>My Component here</h1>
</div>

我对以下内容感兴趣:

  • ember如何决定哪个元素会生成id?
  • 如何生成id本身?
  • 有没有办法保证相同的元素总能得到相同的ID? (目前我看到它每次都在变化)

1 个答案:

答案 0 :(得分:2)

  

ember如何决定哪个元素会生成一个id?

所有视图(包括组件)都获得一个ID,因此Ember可以快速找到DOM中的元素。唯一的例外(我知道)是没有包装元素的视图(tagName是一个空字符串)没有获取ID,因为从技术上讲,没有任何元素可以提供ID

  

如何生成id本身?

正如Yury指出的那样,有一个私有的Ember.guidFor()方法可以为对象分配ID。在内部,它只是一个带字符串前缀的递增整数。

  

有没有办法保证同一个元素总能获得相同的ID? (目前我看到它每次都在变化)

绝对不是,即使有我强烈建议不要使用它。您可以将自己的ID分配给视图和组件,Ember将使用这些ID而不是生成的ID。如果您需要知道元素的ID,assign the ID yourself