Làm cách nào để chỉ định đường dẫn hình ảnh giao diện trong mẫu Knockout HTML?


10

Tôi đang cố gắng thêm một hình ảnh biểu tượng trong Magento_Paypal/web/template/payment/paypal-express.htmlmẫu. Biểu tượng được đặt trong web/images. Tôi muốn sử dụng mã tương đương với mã sau, hoạt động trong các mẫu HTML email, nhưng không phải mẫu cụ thể này:

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

Vì các biến dấu ngoặc nhọn không hoạt động trong mẫu HTML này, làm thế nào để bạn tham chiếu một hình ảnh tồn tại trong web/imagesthư mục của chủ đề ?

Câu trả lời:


23

Bạn cần gọi functionvào jstừ mẫu.

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

3
Đây chính xác là những gì tôi đang tìm kiếm - được chấp nhận! Đây là thẻ hình ảnh cuối cùng cho những người quan tâm : <img data-bind="attr: { src: require.toUrl('')+'images/icon-paypal.png' }" alt="">.
thdoan

2
Điều đó có tốt hơn require.toUrl('images/icon-paypal.png');không? Tôi đã không thử nó, tôi chỉ cho rằng nó hoạt động.
Ben Crook

1
@BenCrook Tôi có thể xác nhận rằng đề xuất của bạn hoạt động.
Darren Felton

Cảm ơn @Meogi, nếu có ai có thể xác nhận thì tôi sẽ cập nhật câu trả lời. Tôi quá bận rộn trên Magento 1 để kiểm tra atm.
Ben Crook

1
@BenCrook Tôi đã kiểm tra và có thể xác nhận rằng giải pháp của bạn hoạt động
Rafał Cz.

3

Nếu bạn đang cố gắng chỉ thêm một đường dẫn hình ảnh trong tệp phtml, bạn nên làm theo cách dưới đây,

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

Để làm điều này với cách Knockout:

Hãy thử thêm một biến vào cửa sổ từ tệp * .phtml:

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

và đọc biến đó từ cửa sổ:

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

Thay đổi mã hình ảnh của bạn:

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

nhưng đường dẫn cửa sổ đó bạn phải gọi vào phần đầu, nên tốt hơn là sử dụng ko.
Sunil Patel

3

tạo biến js trong phtml

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

Bây giờ tạo chức năng js mới

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

trong tập tin html của bạn

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

Bạn có thể vui lòng cho tôi biết cách tạo toàn bộ tệp js và html trong ghi đè tùy chỉnh và cách thêm tệp đó vào xml không?
Sarfaraj Sipai

bạn có muốn ghi đè js và html mặc định trong mô-đun của bạn không?
Qaisar Satti

có, tôi muốn ghi đè các tập tin "Magento_CheckoutAgferences" phtml, js và html.
Sarfaraj Sipai


Tôi biết cách tạo / ghi đè mô-đun nhưng tôi không biết cách ghi đè "js" và "html" trong ghi đè chủ đề tùy chỉnh nên tôi muốn biết điều đó.
Sarfaraj Sipai

0

Bạn có thể sử dụng điều này trong mỗi magento yêu cầu các tệp js mà không có bất kỳ yêu cầu nào - nó đến từ nhà cung cấp / magento / module-theme / view / frontend / samples / page / js / allow_js.phtml

Yêu cầu.s.contexts ._. config.baseUrl
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.