Jak określić ścieżkę obrazu skóry w szablonie Knockout HTML?


10

Próbuję dodać obraz ikony do Magento_Paypal/web/template/payment/paypal-express.htmlszablonu. Ikona znajduje się w web/images. Chciałbym użyć odpowiednika następującego kodu, który działa w szablonach HTML e-mail, ale nie tego konkretnego szablonu:

<img src="{{view url='images/icon-paypal.png'}}">

Ponieważ zmienne nawiasów klamrowych nie działają w tym szablonie HTML, w jaki sposób odwołujesz się do obrazu, który istnieje w katalogu motywu web/images?

Odpowiedzi:


25

Musisz zadzwonić functiondo jsz szablonu.

require.toUrl('images/icon-paypal.png');

3
Właśnie tego szukałem - zaakceptowałem! Oto ostateczny obraz tag dla zainteresowanych: <img data-bind="attr: { src: require.toUrl('')+'images/icon-paypal.png' }" alt="">.
thdoan

2
Czy nie byłoby tak lepiej require.toUrl('images/icon-paypal.png');? Nie próbowałem tego, po prostu zakładam, że to działa.
Ben Crook,

1
@BenCrook Mogę potwierdzić, że twoja sugestia działa.
Darren Felton

Dzięki @Meogi, jeśli ktokolwiek może to potwierdzić, zaktualizuję odpowiedź. Jestem zbyt zajęty Magento 1, żeby sprawdzić bankomat.
Ben Crook

1
@BenCrook Sprawdziłem i mogę potwierdzić, że Twoje rozwiązanie działa
Rafał Cz.

3

Jeśli próbujesz dodać tylko ścieżkę obrazu do pliku phtml, wykonaj następujące czynności,

<img src="<?php echo $block->getViewFileUrl('images/image.png') ?>">\

Aby to zrobić w trybie Knockout:

Spróbuj dodać zmienną do okna z pliku * .phtml:

<script>
  window.imgpath = '<?php echo $block->getViewFileUrl('images/image.png') ?>';
  </script>

i czytanie tej zmiennej z okna:

  function someFunction() {
  var imgPath = window.imgpath;
  }

Zmień kod obrazu:

<img alt="" data-bind="attr: { src: someFunction() } "/>

ale ta ścieżka okna musi być wywołana do części głowy, więc lepiej zrobić to za pomocą ko.
Sunil Patel

3

utwórz zmienną js w phtml

<script>
  var imgpath = '<?php echo $block->getViewFileUrl('images/image.png') ?>';
</script>

Teraz utwórz nową funkcję js

getImagepaypal: function() {
                return window.imgpath;
            }

w tobie plik HTML

 <img alt="" data-bind="attr: { src: getImagepaypal() } "/>

Czy możesz mi powiedzieć, jak utworzyć pełny plik js i html w niestandardowym zastąpieniu i jak dodać go w xml?
Sarfaraj Sipai

czy chciałeś zastąpić domyślne magneto js i html w swoim module?
Qaisar Satti,

tak, chcę przesłonić pliki „Magento_CheckoutAgreements” phtml, js i html.
Sarfaraj Sipai


Wiem, jak utworzyć / przesłonić moduł, ale nie wiem, jak przesłonić „js” i „html” w niestandardowym przesłonięciu motywu, więc chcę to wiedzieć.
Sarfaraj Sipai

0

Możesz użyć tego w każdym magento wymagającym plików js bez żadnych wymagań - pochodzi od dostawcy / magento / module-theme / view / frontend / templates / page / js / requ_js.phtml

Requires.s.contexts ._. config.baseUrl
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.