Ember.js是如何生成id的

How does Ember.js generate ids?

本文关键字:id 何生成 js Ember      更新时间:2023-09-26

如上所述,使用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吗?(目前我看到它每次都在变化)

ember如何决定哪个元素将获得生成的id?

所有视图(包括组件)都会得到一个ID,这样Ember就可以在DOM中快速找到元素。唯一的例外(据我所知)是,没有包装元素(tagName是一个空字符串)的视图不会得到ID,因为从技术上讲,没有元素可以给ID

id本身是如何生成的?

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

有什么方法可以保证同一个元素总是得到相同的id吗?(目前我看到它每次都在变化)

当然不是,即使有,我也强烈建议不要使用它。你可以将自己的ID分配给视图和组件,Ember将使用这些ID而不是生成的ID。如果您需要知道元素的ID,请自己指定ID。