javascript - 使用 Knockoutjs 动态调整页面内容以适应用户选择的语言?

标签 javascript knockout.js localization

我正在尝试使用 Knockoutjs 根据用户在下拉列表中所做的语言选择来动态更改我网页上标签的语言/内容。

目前我正在为语法而苦苦挣扎。 我在 jsFiddle 中提供了我的情况示例

我能做什么:

  • 检索选择的值 (id)。
  • 通过手动输入如下索引,从语言数组中检索/显示“选择的”标签内容:

    self.chosenLang = languages[0];
    

我不能做什么:

  • 使用选择的值 (id) 从语言数组中检索/显示“选择的”标签内容。像这样:

    self.chosenLang = languages[self.selectedChoice];
    

最佳答案

我已经更新了你的 fiddle :http://jsfiddle.net/dWw7F/14/

我所做的是在 selectedChoice observable 上添加了一个订阅,这样我就可以检测到它何时发生变化。订阅的一个方便之处在于,当订阅​​者被调用时,它们包含发布者的值,因此函数中的参数 choice

self.selectedChoice.subscribe(function(choice) {
   self.chosenLang(languages[choice]);        
});

然后我将 chosenLang 提升为可观察对象,以便 DOM 检测其上的更改。此更改还使我更改了 html 中的绑定(bind),我必须在其中使用它:

<p data-bind="text: chosenLang().q3"></p>

请注意,chosenLang() 使用了括号。这是因为我们要访问可观察数据,而不是直接访问可观察数据。

关于javascript - 使用 Knockoutjs 动态调整页面内容以适应用户选择的语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10316863/

相关文章:

javascript - 尝试使用 Knockout ViewModel 实现 SignalR

c# - 本地化文件无法有效地在 MVC ASP.NET Core 2.2 中呈现 Razor 页面

iphone - 在 XCode 中本地化 HTML 文件

php - 通过iframe中的脚本检测父域名

javascript - Primevue图表未呈现

javascript - 如何找到字符串中特定单词的宽度和高度?

javascript - 在 React Native 中将文本置于图像下方

javascript - 使用 JavaScript 或 jQuery 伪造滚动条

javascript - 切换 CSS 类 KnockoutJS

algorithm - 机器人定位建议