تغيير الكود لا يعمل في محرر VS Studio code

عندما آخذ بعض التعليمات البرمجية في مجلد hbs على localhost وأضعها في مجلد hbs آخر، فإنها لا تعمل. يتم إدراج بعض النصوص هناك وهي موجودة على تلك الصفحة، ولكنها تفتقر تمامًا إلى الوظائف، وبعد تحديث الصفحة يتم إعادة تعيين كل شيء لأنها مجرد سلسلة نصية..

هل يمكنك مساعدتي؟

إذا أردت، على سبيل المثال، إدراج كل شيء من interface.hbs في account.hbs بحيث يكون له وظائف، فماذا يجب أن أفعل؟

أعتقد أن الإجابة على هذا السؤال ستساعد الكثير من الأشخاص.

شكراً لردك

الأمور أكثر تعقيدًا من ذلك بكثير. هذا لا يتعلق بمحررك، VS Code خيار ممتاز.

Discourse هو تطبيق صفحة واحدة MVC يستخدم EmberJS في الواجهة الأمامية ويستخدم المسارات (Routes) والنماذج (Models) ووحدات التحكم (Controllers) والقوالب (Templates).

تغيير القوالب فقط لا يكفي عادةً.

سيكون من الجيد جدًا لك قراءة بعض المعلومات عن EmberJS.

ولكن على سبيل المثال، جزء من سبب عدم وجود وظائف هو أن وحدات التحكم مختلفة.

هنا جميع وحدات التحكم لهذا الجزء من الواجهة الخلفية لتطبيق جافاسكريبت:

https://github.com/discourse/discourse/tree/main/app/assets/javascripts/discourse/app/controllers/preferences

التعقيد الطفيف هنا هو أن المكونات (Components) تستجيب أحيانًا للإجراءات (actions)، وكذلك وحدات التحكم.

علاوة على ذلك، قد تضطر إلى القلق بشأن النموذج الذي يتم تقديمه لكل من هذه المسارات المختلفة.

مسارات التفضيلات موجودة هنا بالبادئة preferences:

https://github.com/discourse/discourse/tree/main/app/assets/javascripts/discourse/app/routes

الأمر يصبح أكثر تعقيدًا من ذلك أيضًا، حيث أن البيانات التي يراها Ember يتم تسليمها دائمًا في الأصل بواسطة الواجهة الخلفية وبالتالي تتأثر بمسارات Rails ووحدات التحكم (وغالبًا النماذج) والمُسلسلات (Serializers) في الواجهة الخلفية. انظر https://guides.rubyonrails.org/

4 إعجابات

هل تحاول إجراء تغييرات على النواة (من المحتمل جدًا أنك لا ترغب في القيام بذلك)، أم أنك تقوم بتطوير إضافة؟ إذا لم تكن قد اطلعت بالفعل، فراجع دليل المبتدئين لإنشاء إضافات Discourse الجزء الأول: إنشاء إضافة أساسية.

3 إعجابات

نعم، لأنني بحاجة إلى الحصول على بعض الوظائف في مكان آخر

يمكنك “الحصول على بعض الوظائف في مكان آخر” في مكون إضافي. إذا قمت بعمل نسخة من Discourse، فستندم إذا كنت ترغب في استخدامه لأكثر من شهر. لقد قمت بتطوير لوحة تحكم تسمح لك بتثبيت وإدارة Discourse كمكون إضافي.

5 إعجابات

لقد قمت بتحميل إضافة إلى discourse، واستبدلت في plugins/notebook-main/assets/javascripts/discourse/controllers/notebook.js.es6، واستبدلت هذا الملف بالملف الواجهة الضروري + فعلت نفس الشيء مع قالب hbs.

كل شيء يعمل من الناحية النظرية، باستثناء أننا لا نريد حفظ التغييرات.

Uncaught Error: Property set failed: object in path "model.user_option" could not be found.
    Ember 3
    save notebook:194
    _join backburner.js:995
    join backburner.js:760
    Ember 4
    _triggerAction d-button.js:137
    click d-button.js:106
    Ember 2
    _run backburner.js:1013
    _join backburner.js:989
    join backburner.js:760
    Ember 6
    jQuery 8
    initialize click-interceptor.js:15
    initialize app.js:47
    runInstanceInitializers Ember
    each dag-map.js:231
    walk dag-map.js:145
    each dag-map.js:75
    topsort dag-map.js:83
    Ember 4
    invoke backburner.js:338
    flush backburner.js:229
    flush backburner.js:426
    _end backburner.js:960
    end backburner.js:710
    _run backburner.js:1015
    _join backburner.js:989
    join backburner.js:760
    Ember 2
    jQuery 12