我需要一些关于在淘汰赛上设置本地化的建议。
我使用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时,它将更改其他语言。
答案 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