سؤال

أحاول التبني الماميميت في تطبيق Rails الخاص بي.

التكوين الافتراضي المقدم في الوثائق يمسك جميع ملفات JS بما في ذلك عرض JavaScript المحددة:

embed_assets: on

javascripts:
  workspace:
    - public/javascripts/vendor/jquery.js
    - public/javascripts/lib/*.js
    - public/javascripts/views/**/*.js
    - app/views/workspace/*.jst

stylesheets:
  common:
    - public/stylesheets/reset.css
    - public/stylesheets/widgets/*.css
  workspace:
    - public/stylesheets/pages/workspace.css
  empty:
    - public/stylesheets/pages/empty.css

دعونا نفكر في حالة عند عرض JavaScript المحددة فقط في عرض معين:

$(function(){
  alert("View specific message here!");
}

كيف يمكنني تجنب هذا التأثير؟

التحيات ، أليكسي زاخاروف

هل كانت مفيدة؟

المحلول

تفضيلي هو اختتام "عرض JavaScript" في وظيفة. ثم اتصل بهذه الوظيفة اعتمادًا على الصفحة التي تقوم بتحميلها بالفعل. وبهذه الطريقة ، يمكن تخزين جميع JavaScripts الخاصة بك بواسطة المتصفحات كملف واحد ، ويمكنك تنفيذ أجزاء من JS التي تحتاجها.

لذلك سأضيف أ <script> علامة على المعينة html.erb القالب الذي يستدعي وظيفة العرض الخاصة بك في تحميل الصفحة.

امل ان يساعد...

نصائح أخرى

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

$(function() {
  $('#my-view-object').someBehaviour();
}

إذن ، ما هو الصيد؟ الفرق الرئيسي هو أن رمز JS يميل إلى ربط كائنات معينة ، وليس الصفحات. في حالة إعادة تنظيم وجهات نظرك ، سيكون عليك تغيير JS الخاص بك أيضًا. المشكلة الأخرى هي أن JS يجب أن يكون في أسفل الصفحة للضغط على أقصى استفادة من المتصفح. إذا كنت تضع إدخالات البرنامج النصي في وجهات نظرك ، فمن المحتمل أن ينتهي بهم الأمر في جميع أنحاء علامة HTML الخاصة بالصفحة وإبطاء العرض.

BR ، - خوسيه

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top