我正在使用快速 Handlebars 来生成我的 View ,但是我遇到了一个问题,即我的 View 中的某些内容没有正确翻译,因为我在 #each 中调用了 I18n 助手。 helper 。
Index.handlebars:

{{#if roomsList}} 
    {{#each roomsList}}         
        <section id="roomNumber-{{RoomNumber}}"> 
            <div class="room-status">               
                <div class="room-number"> 
                    <p>{{RoomNumber}}</p> 
                </div> 
                <div class="room-description room-status-{{RoomStatus}}"> 
                    <p class="clean">{{i18n "clean"}}</p> 
                    <p class="dirty">{{i18n "dirty"}}</p> 
                    <p class="in-progress">{{i18n "in-progress"}}</p> 
                    <p class="to-inspect">{{i18n "to-inspect"}}</p> 
                </div> 
            </div> 
            <span class="clearfix"></span> 
        </section>         
    {{/each}} 
{{/if}} 
JS:
var Handlebars = require('Handlebars'); 
var i18n = require('i18n'); 
 
module.exports = { 
    //Setup our default layout 
    defaultLayout: 'default', 
  
    //Register handlebars helpers 
    helpers: { 
    //Register your helpers 
        //Helper for multiple languages 
        i18n: function () { 
            return i18n.__.apply(this, arguments); 
        }, 
        __n: function () { 
            return i18n.__n.apply(this, arguments); 
        }, 
        section: function (name, options) { 
            if (!this._sections) this._sections = {}; 
            this._sections[name] = options.fn(this); 
            return null; 
        },  
        breaklines: function(text) { 
            text = Handlebars.Utils.escapeExpression(text); 
            text = text.replace(/(\r\n|\n|\r)/gm, '<br>'); 
            return new Handlebars.SafeString(text); 
        } 
    }      
} 
我该如何解决这个问题?

请您参考如下方法:

这个对我有用:

{{#with ..}}{{i18n "to-inspect"}}{{/with}} 

这会将上下文向上移动


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!