Javascript 使用Knockoutjs动态调整页面内容以适应用户的语言选择?
我正在尝试使用Knockoutjs根据用户在下拉列表中选择的语言动态更改网页上标签的语言/内容 目前,我正在努力学习语法。 我已经举了一个例子来说明我在这方面的情况 我能做什么:Javascript 使用Knockoutjs动态调整页面内容以适应用户的语言选择?,javascript,knockout.js,localization,Javascript,Knockout.js,Localization,我正在尝试使用Knockoutjs根据用户在下拉列表中选择的语言动态更改网页上标签的语言/内容 目前,我正在努力学习语法。 我已经举了一个例子来说明我在这方面的情况 我能做什么: 检索所选内容的值(id) 通过手动输入如下索引,从语言数组中检索/显示“所选”标签内容: self.chosenLang = languages[0]; self.chosenLang = languages[self.selectedChoice]; 我不能做的事: 使用所选内容的值(id),从语言数组中
- 检索所选内容的值(id)
- 通过手动输入如下索引,从语言数组中检索/显示“所选”标签内容:
self.chosenLang = languages[0];
self.chosenLang = languages[self.selectedChoice];
- 使用所选内容的值(id),从语言数组中检索/显示“所选”标签内容。大概是这样的:
self.chosenLang = languages[0];
self.chosenLang = languages[self.selectedChoice];
selectedChoice
observable上添加了一个订阅,这样我就可以检测到它何时发生变化。订阅的一个方便之处是,在调用订阅服务器时,订阅服务器包含发布服务器的值,因此函数中有参数choice
self.selectedChoice.subscribe(function(choice) {
self.chosenLang(languages[choice]);
});
然后,我将chosenLang
提升为可观察对象,以便让DOM检测其上的更改。此更改还使我更改了html中的绑定,我必须使用以下内容:
<p data-bind="text: chosenLang().q3"></p>
请注意,
chosenLang()
使用括号。这是因为我们希望访问可观察数据,而不是直接访问可观察数据。非常感谢您的帮助!事实上,我曾试图在某个时候使用订阅,但显然当时我做错了其他事情。