如所述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? (目前我看到它每次都在变化)
最佳答案
How does ember decide which element would get a generated id?
所有 View (包括组件)都有一个 ID,因此 Ember 可以快速找到 DOM 中的元素。唯一的异常(exception)(据我所知)是没有包装元素的 View (tagName
是一个空字符串)不会获得 ID,因为从技术上讲没有元素可以提供 ID。
How does the id itself get generated?
正如 Yury 所指出的,有一个私有(private)的 Ember.guidFor()
方法可以将 ID 分配给对象。在内部,它只是一个带有字符串前缀的递增整数。
Is there any way to guarantee that the same element will always get the same id? (currently I'm seeing it changes every time)
绝对不是,即使有我也强烈建议不要使用它。您可以将自己的 ID 分配给 View 和组件,Ember 将使用它们而不是生成的 ID。如果您需要知道元素的 ID,assign the ID yourself .
关于javascript - Ember.js 如何生成 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29208203/