Knockout int值 - 显示字符串

时间:2015-04-21 07:34:35

标签: javascript jquery asp.net asp.net-mvc knockout.js

是否可以显示依赖于int值的字符串值?

例如,我有一个数组可观察列表,其中一个元素是int。我不想显示int,但依赖于int值,string。

例如,如果我有1,我想显示“一个”,2 - > “其他”继续。

现在我有:

<td data-bind="text: test_value"></td>

它在foreach循环中。

1 个答案:

答案 0 :(得分:3)

有多种方法可以实现这一目标。

最简单的解决方案就是声明一个查找对象并在绑定绑定中进行查找:

<td data-bind="text: $root.strings[test_value]"></td>

视图模型具有strings查找对象,如下所示:

strings: {
    1: 'test',
    2: 'other',
    3: 'thrid'
}

演示http://jsfiddle.net/zuq0whhw/

注意:

  • 因为你在foreach中,你需要使用$parent$root(取决于你的设置)来访问你的查询对象,这可以在“更高级别”声明。
  • 如果您的test_value是KO可观察对象,则需要编写$root.strings[test_value()],因为KO observables是函数,您需要调用它们而不需要任何参数来获取底层值。

更复杂,更易维护的解决方案是使用computed properties在视图模型中执行查找逻辑,或创建一个封装此逻辑的custom binding,然后您可以将其用于任何其他属性,如好。