从div或模板中获取所有车把表达式?

时间:2013-04-02 17:35:27

标签: javascript jquery ember.js handlebars.js

我有一个车把模板,我想要的就是从div中获取所有车把表达式?

Html代码

    <div id="comp_login_i18n">
        <form name="loginForm">
            <table>
                <tr class="requiredField">
                    <td>
                        <label>{{content.token1Label}}</label>
                    </td>
                    <td >
                        <input type="text">
                    </td>
                </tr>

                <tr class="requiredField">
                    <td>
                        <label>{{content.token2Label}}</label>
                    </td>
                    <td>
                        <input type="text">
                    </td>
                </tr>
                <tr>
                    <td class="tableWidth" colspan="2">
                        <button {{action submitForm}} class="submit" type="button">{{content.button}}</button>
                    </td>
                </tr>
            </table>
        </form>
    </div>


</script>

我正在编写一个方法,该方法从该div获取所有把手表达式并根据所选的语言更改标签。我不知道如何在这个div中获得把手表达式。任何人吗?

1 个答案:

答案 0 :(得分:0)

我建议不要试图在运行中构建模板文件。 最好在模板的上下文中注入“i18n”属性,并根据您选择的语言进行更改。

服务器端伪代码:

language = getUserLanguage();//user's desired language
data = ...; //data that is needed for your templates (other that i18n stuff)
data.i18n = getStringsForLanguage(language);//get strings for selected language
render(template, data);//invoking template rendering

模板:

...
<label>{{i18n.token1Label}}</label>
...

然后,在某处您需要为每种语言定义字符串(以进入getStringsForLanguage)f.ex:

en.strings:

token1Label = This is token1Label in English

de.strings:

token1Label = This is token1Label in German