Magento2 এ <স্ক্রিপ্ট টাইপ = "টেক্সট / এক্স-ম্যাজেন্টো-আরআইএন"> কী?


29

আমি Magento2 এ নতুন এবং আমাদের সংস্থা সবেমাত্র EE লাইসেন্স পেয়েছে। আমি এটি আমার স্থানীয় মেশিনে ইনস্টল করেছি এবং ডিফল্ট টেম্পলেটটি এইচএমটিএল এর সাথে নীচে মিশ্রিত করে ফেলেছে:

<script type="text/x-magento-init">
{
    "*": {
        "Magento_Ui/js/core/app": {
            "components": {
                "customer": {
                    "component": "Magento_Customer/js/view/customer"
                }
            }
        }
    }
}
</script>

এবং কল পছন্দ

<script type="text/x-magento-init">
{
"*": {
    "Magento_Ui/js/core/app": {
        "components": {
                "messages": {
                    "component": "Magento_Theme/js/view/messages"
                }
            }
        }
    }
}
</script>

এর সাথে কি করা যায় KnockoutJSনাকি RequireJS? এই কলগুলি কী এবং এই নতুন স্ক্রিপ্ট ট্যাগটি<script type="text/x-magento-init">


1
এই প্রশ্নটি পোস্ট হওয়ার পরে কিছু ডক্স সম্ভবত যুক্ত করা হয়েছিল: devdocs.magento.com/guides/v2.0/javascript-dev-guide/javascript/…
নেভারভারমাইন্ড

উত্তর:


29

"স্ক্রিপ্ট টাইপ" এর সাধারণ ব্যবহার

<script type="....">ব্রাউজার ব্যবহার করার সময় এটি যা জানে কেবল তার ব্যাখ্যা করে ( text/javascriptউদাহরণস্বরূপ)।
অন্য কিছু উপেক্ষা করা হয়।
মূলত একটি কাস্টম প্রকার ব্যবহার করে আপনি পৃষ্ঠাটি প্রদর্শিত না করে এবং ব্রাউজারটি ব্যাখ্যা না করেই তথ্য যুক্ত করছেন এবং আপনি পরে সেই তথ্যটি নিজের ইচ্ছামত ব্যবহার করতে পারবেন।

ম্যাজেন্টো এটি কীভাবে ব্যবহার করে

পৃষ্ঠা লোড হওয়ার পরে ম্যাজেন্টো এই বিভাগগুলি ব্যবহার করে।
এগুলি ব্যবহার করে এমন কোডটি অবস্থিত lib/web/mage/apply/scripts.js
আমি উল্লিখিত ফাইলটি কী করে তা আমি পুরোপুরি বুঝতে পারি না, তবে ফাইলটির অভ্যন্তরে একটি মন্তব্য রয়েছে যা এটি বলে:

/**
 * Parses 'script' tags with a custom type attribute and moves it's data
 * to a 'data-mage-init' attribute of an element found by provided selector.
 * Note: All found script nodes will be removed from DOM.
 *
 * @returns {Array} An array of components not assigned to the specific element.
 *
 * @example Sample declaration.
 *      <script type="text/x-magento-init">
 *          {
 *              "body": {
 *                  "path/to/component": {"foo": "bar"}
 *              }
 *          }
 *      </script>
 *
 * @example Providing data without selector.
 *      {
 *          "*": {
 *              "path/to/component": {"bar": "baz"}
 *          }
 *      }
 */

উপসংহার / জল্পনা

আমি অনুমান করি যে উপাদানগুলির মধ্যে থাকা টেমপ্লেটটি পুনরায় লেখার প্রয়োজন ছাড়াই পৃষ্ঠার বিভিন্ন উপাদানগুলিতে বিভিন্ন জেএস আচরণ সেট করার একটি উপায় এটি।
আপনাকে কেবলমাত্র <script type="text/x-magento-init">আপনার টেম্পলেটগুলির মধ্যে একটি যুক্ত করতে হবে, পৃষ্ঠাতে আপনার টেমপ্লেট অন্তর্ভুক্ত করতে হবে এবং "স্বতঃ-যাদুগতভাবে" আচরণটি সঠিক উপাদানটিতে সরিয়ে ফেলতে হবে ge


আমি এই স্ক্রিপ্টটি মুছে ফেলার চেষ্টা করেছি app/design/frontend/package/template/Magento_Catalog/templates/product/view/gallery.phtmlতবে ভাগ্য নেই। প্রোডাক্ট ম্যাগনিফায়ার এবং / অথবা প্রোডাক্ট গ্যালারী (সুনির্দিষ্টভাবে fotorama) হিসাবে ডিফল্ট আচরণগুলি সরানোর বিষয়ে কোনও পরামর্শ?
জনাকা ডোম্বাওয়েলা

আমি একটি সতর্কতা পেয়েছি অনুপস্থিত জেএস উপাদান সূচনা পেয়েছি। \ "X-magento-init \" বা x "এক্স-ম্যাজেন্টো-টেম্পলেট।" ব্যবহার করুন। আমি যখন পিটিএইচটিএমএল ফাইলে <script> ট্যাগ ব্যবহার করি তখন এটি কীভাবে সমাধান করা যায়।
সঞ্জয় গোহিল

ছেলেরা, আমি কীভাবে ডেটা-ম্যাজ-ইন-এ এই পাসিং প্যারামিটারটি ব্যবহার করতে পারি তার কোনও বাস্তব সময়ের উদাহরণ নেই? এবং কিভাবে এটি ফলাফল ফিরে আসবে?
ক্যামিট 1 ডেকে

9

এছাড়াও,

বিক্রেতা \ Magento \ magento2-বেস \ liberal এর সংক্ষিপ্ত রূপ \ ওয়েব \ পুরোনো যাদুকর \ আবেদন \ scripts.js

var scriptSelector = 'script[type="text/x-magento-init"]',
        dataAttr = 'data-mage-init',
        virtuals = [];

নীচে গাইড ব্যবহার করে

http://devdocs.magento.com/guides/v2.1/javascript-dev-guide/javascript/js_init.html

স্ট্যান্ডার্ড সিনট্যাক্স হয়

<script type="text/x-magento-init">
{
    // components initialized on the element defined by selector
    "<element_selector>": {
        "<js_component1>": ...,
        "<js_component2>": ...
    },
    // components initialized without binding to an element
    "*": {
        "<js_component3>": ...
    }
}
</script>

উল্লেখ করে

http://alanstorm.com/magento_2_javascript_init_scripts

http://alanstorm.com/magento_2_introducing_ui_components

Magento নিজেই প্রায়ই ব্যবহার করে x-magento-init একটি প্রোগ্রাম হিসাবে একটি প্রয়োজনীয় জেএস মডিউলটি আহ্বানের পদ্ধতিটি । তবে এর আসল শক্তি x-magento-initহ'ল ম্যাজেন্টো জাভাস্ক্রিপ্ট উপাদান তৈরি করার ক্ষমতা।

ম্যাজেন্টো জাভাস্ক্রিপ্ট উপাদানগুলি আবশ্যকজেএস মডিউল যা কোনও ফাংশন ফিরিয়ে দেয়।

ম্যাজেন্টো মুখোমুখি a text/x-magento-init স্ক্রিপ্ট ট্যাগের সাথে একটি * অ্যাট্রিবিউটের , এটি হবে

1] নির্দিষ্ট করা প্রয়োজনীয় জেএস মডিউলটি শুরু করুন (ম্যাজেন্টো_ইউআই / জেএস / কোর / অ্যাপ)

2] ডেটা অবজেক্টে পাস করে সেই মডিউলটি দিয়ে ফাংশনটি কল করুন

আশা করি এটা সাহায্য করবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.