javascript - Ember.js 如何生成 ID?

标签 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? (目前我看到它每次都在变化)

最佳答案

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/

相关文章:

javascript - 自动执行 HTTP 请求

javascript - Ember 无法访问动态段参数

ember.js - Ember 创建对象时如何观察火(观察已在模型中设置)

javascript - 未捕获的 TypeError : this. get(...).toArray 不是函数(...)

javascript - 如何在 EmberJS 模板中访问存储在其他变量中的键中的对象属性的值?

javascript - 定义多个布局 emberjs

javascript - 带有 Controller 的 Angular Directive(指令)不起作用

javascript - 无法访问 ng-model

javascript - 使用 Karma 和 Istanbul 时从覆盖范围中排除文件

Javascript 调用与返回函数