敲除本地化下拉选择

时间:2015-03-05 01:32:09

标签: knockout.js localization

我需要一些关于在淘汰赛上设置本地化的建议。

我使用https://github.com/tfsjohan/Knockout-Localization-Binding进行本地化,但由于它使用静态区域设置,我尝试使用带有绑定的下拉列表。

<select data-bind="options: choices, value: selectedChoice"></select>

<小时/>

        <label for="name" data-bind="restext: 'name'"></label><br />

        <label data-bind="restext: 'email'"></label><br />

        <label data-bind="restext: 'street'"></label><br />

        <label data-bind="restext: 'zip'"></label><br />

        <label data-bind="restext: 'city'"></label><br />

这是jsFiddle http://jsfiddle.net/efkgqwa5/1/ 基本上我希望select选项从资源加载值(en,sv,...可能是将来的其他条目),默认选择的是en。然后,当我更改为sv时,它将更改其他语言。

1 个答案:

答案 0 :(得分:1)

很小的修改可以解决这个问题,只需将locale设为self.locale,并在使用区域设置变量的地方反映绑定处理程序的更改

<强>视图模型:

 var vm = function(){
        var self=this;
        self.choices= ["en", "sv"];
        self.selectedChoice= ko.observable();
        self.name= ko.observable();
        self.email= ko.observable();
        self.locale=ko.observable('en');

       self.selectedChoice.subscribe(function(newValue) {
        self.locale(newValue); //updates everywhere
       });

工作小提琴 here