مشكلة في Jquery داخل مكون الإضافة

هل يتم تمكين jQuery تلقائيًا لمكونات الإضافات؟ هل فاتني خطوة إعداد؟

أواجه مشاكل في الوصول ببساطة إلى HTML DOM عبر jQuery (مع الهدف النهائي لاستخدام دالة التكامل التلقائي في jQuery). إليك مثال على أحد محاولاتي، حيث أحاول استرجاع معرف العنصر باستخدام معرفه. إنه لا يجد العنصر أبدًا. يبدو وكأنه لو أن جافا سكريبت لا تملك نقطة مرجعية.

---- في /src/plugins/test/assets/javascripts/discourse/components ----
---- element-main.js.es6 ----
import discourseComputed, { observes } from "discourse-common/utils/decorators";
import jQuery from 'jquery';

export default Ember.Component.extend({
  init() {
    this._super(...arguments);
    console.log("في القوالب/components/element-main.js.es6");
    console.log(jQuery);
    const aaa = jQuery('#eleinp');
    console.log(aaa)
    console.log(aaa.attr('id'));
  }
});

---- في /src/plugins/test/assets/javascripts/discourse/templates/components ----
---- element-main.hbs ----
<p>element-main في القالب</p>
<input id="eleinp" value="HAHAHA">

لقد جربت أيضًا this.element و (this.element) و (this) و $() وما إلى ذلك.

يُعدُّ init في وقت مبكر جدًا من دورة الحياة لتطبيق jQuery. كما أنك لا تحتاج إلى استيراده. وأخيرًا، يجب أن تقيّم ما إذا كنت حقًا بحاجة لاستخدامه من الأساس. إذا كنت بحاجة لاستخدامه، فإن didInsertElement أو didRender هما المكانان الصحيحان لاستخدامه.

شكرًا لك! عملت دالة didRender() بشكل جيد، كما قمت بإزالة جملة الاستيراد الزائدة. أنا أستخدم jQuery لأن لدي جملة بحث مخصصة على الإدخال لا تتوافق مع عنصر HTML ‘datalist’. والسبب هو أن datalist يعرض الخيارات فقط عندما تحتوي بشكل صريح على جزء من النص.

حاول تجنب استخدام jQuery، حيث سيتم إزالته من Ember وبالتالي من Discourse خلال العامين القادمين. JavaScript الحديث العادي كافٍ.

شكرًا لك على التنبيه، أنا أستخدم الآن Awesomplete بدلاً من التلقائي الخاص بـ JQuery