बेस यूआरएल या डायनामिक यूआरएल देखें जेएस या html फाइलों में


16

मुझे यह पता लगाना है कि अगर मुझे ज़रूरत है तो मैं आगे के अंत में गतिशील url प्राप्त कर सकता हूं mage/urlऔर इसे इस रूप में उपयोग कर सकता हूंurl.build('<Modulename>/<controllername>/<action>/')

जब मैंने बैकएंड के लिए एक ही चीज़ की कोशिश की, तो इससे मुझे अपेक्षित परिणाम नहीं मिला।

इसने वर्तमान url दिया और मेरे द्वारा बताए गए मार्ग को जोड़ना।

क्या कोई समझा सकता है कि यह कैसे काम करता है। क्या मुझे कहीं आधार को परिभाषित करने की आवश्यकता है?

जवाबों:


9

खोआ को उनके स्पष्टीकरण के लिए धन्यवाद, जो मैं हासिल करना चाहता था वह मेरे व्यवस्थापक रूप में है, मैं एक बाहरी यूआरएल को अजाक्स के साथ बुला रहा हूं। मैं एक स्थिर पथ का उपयोग कर रहा था, इसलिए मैं इसे गतिशील रूप से चाहता था। तो यहां मैंने क्या किया है।

मेरा लेआउट XML फ़ाइल

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="content">
                <uiComponent name="namespace_modulename_form"/>
                <block class="Namespace\Modulename\Block\Adminhtml\Edit" name="edit" template="Namespace_Modulename::edit.phtml" />
        </referenceContainer>
    </body>
</page>

लेआउट Phtml फ़ाइल मैंने बेस्यूल को परिभाषित किया।

    <script>
        require([
            'mage/url'
        ], function(url) {
            return url.setBaseUrl('<?php /* @escapeNotVerified */ echo $block->getAdminBaseUrl();?>');
        })
    </script>

मेरी ब्लॉक फाइल जो बेस यूआरएल लौटाती है

<?php

namespace Namespcae\Modulename\Block\Adminhtml;

class Edit extends \Magento\Framework\View\Element\Template
{

    protected $_configReader;

    public function __construct(
        \Magento\Framework\View\Element\Template\Context $context,
        \Magento\Framework\App\DeploymentConfig\Reader $configReader
    ) {
        $this->_configReader = $configReader;
        parent::__construct($context);
    }

    public function getAdminBaseUrl(){
        $config = $this->_configReader->load();
        $adminSuffix = $config['backend']['frontName'];
        return $this->getBaseUrl() . $adminSuffix . '/';
    }
}

अब मेरी js फाइलों में मैं इसका उपयोग कर सकता हूं।

define([
    'Magento_Ui/js/form/element/abstract',
    'mage/url'
], function (Abstract, url) {
    'use strict';

    return Abstract.extend({
        url.build('namespace_module/controllername/action/');
    });
});

8

जस्ट डू द ओनली इन जेएस फाइल

define(['mage/url'], 
  function (url) {
   'use strict';
    var url = url.build('<modulename>/<controllername>/<actionname>');
});

परिणाम होगा:

http://ip_address/<modulename>/<controllername>/<actionname>

यह मुझे एक ही परिणाम नहीं देगा बैकएंड में। इसलिए पहले ब्लॉक को आधार को परिभाषित करने की आवश्यकता है
प्रियांक

लेकिन उर सवाल में यू उल्लेख यू चाहते हैं कि यूआरएल में js तो यह उपयोगी होगा। अब आप मुझे बताएं कि आप किस फाइल में URL चाहते हैं । आपकी समस्या हल हुई या नहीं?
नितेश

हम url.build () फ़ंक्शन का उपयोग करके साइट का बेस url कैसे प्राप्त करते हैं?
प्रिंस पटेल

इसका उपयोग करते हुए -> परिभाषित (['मग / url')
नितेश

6

सबसे महत्वपूर्ण बात जो हमें जानना आवश्यक है: हमें इसके लिए बेस यूआरएल सेट करने की आवश्यकता हैurl.build('<Modulename>/<controllername>/<action>/') :

lib / वेब / दाना / url.js

        setBaseUrl: function (url) {
            baseUrl = url;
        },
        build: function(path) {
            if (path.indexOf(baseUrl) != -1) {
                return path;
            }
            return baseUrl + path;
        }

मूल रूप से, दो स्थान हैं जहाँ आधार url सेट करना है:

vendor/magento/module-checkout/view/frontend/templates/onepage.phtml vendor/magento/module-checkout/view/frontend/templates/cart/shipping.phtml

return url.setBaseUrl('<?php /* @escapeNotVerified */ echo $block->getBaseUrl();?>');

तो, अपने व्यवस्थापक में, आपको व्यवस्थापक आधार url सेट करना होगा।


1
ठीक है, मैं समझ गया लेकिन व्यवस्थापक रूपों के बारे में बात करना, जहां मुझे इसे लागू करने की आवश्यकता है। मेरा फॉर्म ui घटक का उपयोग करके बनाया गया है तो मैं url कैसे सेट कर सकता हूं क्योंकि इसे ऑनपेज या शिपिंग में परिभाषित किया गया है?
प्रियंक

नमस्कार, आप अपने मुद्दे के बारे में अधिक जानकारी बता सकते हैं। यूआई घटक के बारे में: magento.stackexchange.com/questions/97291/…
खोआ ट्रूंगडीह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.