Định dạng giá với javascript trong Magento 2


9

Trong javascript tôi đã tính một số. Mà tôi muốn hiển thị như một mức giá.

Tệp tin của tôi

define([
    'jquery'
], function ($) {
    "use strict";

    function irreleventCalculations() {
        // black magic here
        return 19.949999;
    }
    var price = irrelevenCalculation();

    jQuery('#myCustomPriceDiv').text(formatedPrice);

    return $;
});

Làm thế nào tôi nên làm điều này trong Magento 2?


Bạn có thể vui lòng chia sẻ mã của bạn?
Amit Bera

thử sử dụng .toFixed(2)phương pháp. Tức làformatedPrice = price.toFixed(2)
Renon Stewart

@RS Tôi muốn nó định dạng giá theo cài đặt. Vì vậy, biểu tượng chính xác và một số quốc gia có nhiều hơn hai phao
janw

Câu trả lời:


19

Hãy xem vận chuyển_method / price.js

define(
    [
        'jquery',
        'Magento_Checkout/js/model/quote',
        'Magento_Catalog/js/price-utils'
    ],
    function ($,quote, priceUtils) {
        "use strict";
            ......
            formatedPrice = getFormattedPrice(price)

            getFormattedPrice: function (price) {
                //todo add format data
                return priceUtils.formatPrice(price, quote.getPriceFormat());
            }
        });
    }
);

Điều đó đã giúp. Tôi sẽ gửi mã của mình trong một câu trả lời riêng biệt. Nhưng chấp nhận của bạn.
janw

2
Điều này chỉ hoạt động trên các trang giỏ hàng và thanh toán. Trên các trang khác window.checkoutConfig không được xác định và không thể truy cập đối tượng trích dẫn và đưa ra lỗi:Uncaught TypeError: Cannot read property 'quoteData' of undefined at quote.js:13
Miroslav Petroff

@MiroslavPetroff Bạn đã tìm thấy một giải pháp đơn giản cho việc này chưa? Khác với viết mã riêng để có được định dạng giá?
Alex

Đối với những người đang tìm cách lấy đối tượng priceFormat thực tế (tùy theo cấu hình cửa hàng): magento.stackexchange.com/a/151836/77158
nikoskip

5

Dựa trên câu trả lời của RS

define([
    'jquery',
    'Magento_Catalog/js/price-utils'
], function ($, priceUtils) {
    "use strict";

    function irreleventCalculations() {
        // black magic here
        return 19.949999;
    }
    var price = irrelevenCalculation();
    price = priceUtils.formatPrice(price);


    jQuery('#myCustomPriceDiv').text(formatedPrice);

    return $;
});

1
Điều này dường như chỉ hoạt động cho các định dạng giá không nội địa hóa.
Alex
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.