【问题标题】:Why this.$ is not available in Ember Controller为什么 this.$ 在 Ember 控制器中不可用
【发布时间】:2022-11-09 22:08:27
【问题描述】:

Ember.$ 在控制器中可用,而 this.$ 不可用。但它在组件中可用。

Ember.$(".loading-splash").hide(); 正在控制器上工作 this.$(".loading-splash").hide(); 正在抛出异常 "this.$() is unavailable"

【问题讨论】:

  • 这是什么 ember-source 版本?

标签: ember.js


【解决方案1】:

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 可以包装。

【讨论】:

    猜你喜欢
    • 2012-02-27
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多