簡體   English   中英

使用Handlebars.js刪除動態生成的輸入ID中的空格

[英]Remove whitespace in dynamically generated input id using Handlebars.js

    input type="checkbox" class="btn pointCheck" 
    id="GasMeteringVC-VolumeCorrector-Temperature t"
    value="GasMeteringVC/VolumeCorrector/Temperature t">

    <label for="GasMeteringVC-VolumeCorrector-Temperature t" class="pointBefore"></label>

有人可以幫我消除溫度和溫度之間的空格。

 <input type="checkbox" class="btn pointCheck" id="{{../../name}}-{{../name}}-{{name}}"
                                                            value="{{../../name}}/{{../name}}/{{name}}"/>
                    <label for="{{../../name}}-{{../name}}-{{name}}" class="pointBefore">

上面是生成帶有菜單和復選框的菜單的車把代碼。 所有值均來自JSON對象。

如前所述,最好在模板外部進行此類清潔。 但是,如果您選擇走那條路線,則可以使用助手。

注冊一個助手

Handlebars.registerHelper('cleanConcat', function() {
    var argument        = null;
    var data            = null;
    var cleanedString   = '';
    var cleanedStrings  = [];

    for ( var i = 0; i < arguments.length; ++i ) {
        argument = arguments[ i ];

        // Handlebars passes in extra arguments, so you can't just loop through
        // arguments itself
        if ( typeof argument === 'object' && argument.name === 'cleanConcat' ) {
            data = argument.data.root;

            for ( var prop in data ) {

                // You can do any type of cleaning that you want here.
                // As an example I forced each string to lower case and replaced spaces with a "-"
                cleanedString = data[ prop ].toLowerCase().replace( /\s/g, '-' );
                cleanedStrings.push( cleanedString );
            }
            return cleanedStrings.join( '-' );
        }
    }
});

將任意數量的字符串傳遞給該幫助器

<label for="{{cleanConcat ../../name ../name name}}"

小提琴

http://jsfiddle.net/U4ELK/1/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM