2015-03-05 2 views
0

Мне нужно некоторое предложение по настройке локализации на нокауте.Выпадение локализации выпадающего списка

Я использую 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/ В основном я хочу, выберите опцию для загрузки значения из ресурса (еп, св ..., возможно, другой вход в будущем) и по умолчанию выбрано значение en. Затем, когда я перейду на sv, он внесет изменения на другой язык.

ответ

1

Ну небольшая модификация будет делать трюк здесь просто сделать locale как self.locale и отражают изменения в слишком привязки обработчиков, где вы с помощью локальной переменной

ViewModel:

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

+0

Спасибо вам круто. –

Смежные вопросы