【发布时间】:2022-11-09 22:08:27
【问题描述】:
Ember.$ 在控制器中可用,而 this.$ 不可用。但它在组件中可用。
Ember.$(".loading-splash").hide(); 正在控制器上工作
this.$(".loading-splash").hide(); 正在抛出异常 "this.$() is unavailable"
【问题讨论】:
-
这是什么 ember-source 版本?
标签: ember.js
Ember.$ 在控制器中可用,而 this.$ 不可用。但它在组件中可用。
Ember.$(".loading-splash").hide(); 正在控制器上工作
this.$(".loading-splash").hide(); 正在抛出异常 "this.$() is unavailable"
【问题讨论】:
标签: ember.js
Ember 组件有一个this.element,这是它们所附加到的 DOM 中的一个位置。旧版本的 Ember(3.x 及更低版本)使用 this.$() 包装此元素,以便您可以方便地将 JQuery 与该元素一起用作上下文。
例如, this.$('.some-class') 将在组件范围内定位具有 some-class 的元素,即在组件的元素内。 Ember.$('.some-class') 将在页面中的任何位置定位具有 some-class 的元素。
JQuery 集成在 Ember 3.4 中成为可选功能,在 3.14 中不再默认启用,最终在 3.x 周期后期弃用并在 Ember 4.0 中删除。
控制器和 Glimmer 组件与 DOM 中的元素没有关联,因此没有 this.element 可以包装。
【讨论】: