1

我有带有价格和货币名称的 JSON,如下所示:

[{"price": 123, "currency": "RUR"},
{"price": 456, "currency": "USD"},
{"price": 789, "currency": "EUR"}]

另外,我使用 Mustache.php 来渲染它们。{{price}} {{currency}} 作为模板并获得:123 RUR 456 USD 789 EUR

但是,我想将“RUR”、“USD”、“EUR”替换为“Russian rubles”、“US Dollar”、“Euro”并得到

123 Russian rubles
456 US dollars
789 Euro

我想,我可以使用助手

$mustache->addHelper('_curstyle', function($text) {
if ($text == "RUR") {return ("Russian rubles")};
if ($text == "USD") {return ("US dollars")};
if ($text == "EUR") {return ("Euro")};
});

$text 等于 "{{currency}}"。而且我不能使用if构造。如何将 {{currency}} 转换为值,或将其预渲染以在方程式中使用?

4

1 回答 1

1

假设您使用 Mustache.php v2.1,您可以使用作为可选第二个参数传递给您的助手的 LambdaHelper 来呈现原始块体:

$mustache->addHelper('_curstyle', function($text, $mustache) {
    switch($mustache->render($text)) {
        case 'RUR':
            return 'Russian rubles';
        case 'USD':
            return 'US dollars';
        case 'EUR':
            return 'Euro';
        default:
            return $text;
    }
});
于 2013-03-12T20:51:16.223 回答