如何在Knockout HTML模板中指定皮肤图像路径?


10

我正在尝试在Magento_Paypal/web/template/payment/paypal-express.html模板中添加图标图像。图标位于中web/images。我想使用与以下代码等效的代码,该代码适用于电子邮件HTML模板,但不适用于此特定模板:

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

由于大括号变量在此HTML模板中不起作用,因此如何引用主题web/images目录中存在的图像?

Answers:


24

你需要调用functionjs从模板。

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

3
这正是我在寻找的东西-被接受!这是感兴趣的最终图像标签:<img data-bind="attr: { src: require.toUrl('')+'images/icon-paypal.png' }" alt="">
thdoan

2
那不是更好require.toUrl('images/icon-paypal.png');吗?我还没有尝试过,我只是认为那是可行的。
本·克鲁克

1
@BenCrook我可以确认您的建议有效。
达伦·费尔顿

感谢@Meogi,如果其他人可以确认,我将更新答案。我在Magento 1上太忙了,无法检查atm。
本·克鲁克

1
@BenCrook我检查并确认您的解决方案工程
拉法尔锆石。

3

如果您尝试仅在phtml文件中添加图像路径,则应遵循以下方法,

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

要使用淘汰赛方法:

尝试从* .phtml文件向窗口添加变量:

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

并从窗口读取该变量:

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

更改您的图片代码:

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

但是您必须调用该窗口路径的头部,因此最好使用ko。
Sunil Patel's

3

在phtml中创建js变量

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

现在创建新的js函数

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

在你的HTML文件

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

您能告诉我如何在自定义覆盖中创建完整的js和html文件以及如何在xml中添加文件吗?
Sarfaraj Sipai '10

您是否要在模块中覆盖Magnetico默认的js和html?
卡萨尔·萨蒂

是的,我想覆盖“ Magento_CheckoutAgreements”文件phtml,js和html。
Sarfaraj Sipai


我知道如何创建/覆盖模块,但我不知道如何在自定义主题覆盖中覆盖“ js”和“ html”,所以我想知道这一点。
Sarfaraj Sipai '10

0

您可以在每个magento需要js文件的地方使用此文件,而无需任何要求-它来自vendor / magento / module-theme / view / frontend / templates / page / js / require_js.phtml

require.s.contexts ._。config.baseUrl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.