【问题标题】:Knockout int value - display stringKnockout int 值 - 显示字符串
【发布时间】:2015-06-28 05:36:24
【问题描述】:

是否可以根据 int 值显示字符串值?

例如,我有一个数组 observable 列表,其中一个元素是 int。我不想显示int,而是依赖于int值,字符串。

例如,如果我有 1 我想显示 "one",2 -> "other" 并继续。

现在我有:

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

它在 foreach 循环中。

【问题讨论】:

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


    【解决方案1】:

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

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

    <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 可观察对象是函数,您需要在不带任何参数的情况下调用它们以获得低估的值。

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

    【讨论】:

    • 有点误会。我想对 int 值有字符串值需求,而不是串联。例如 1->"test", 2->"other" ...
    • @Cieja 是的,您的原始示例非常具有误导性……您应该使用这个新示例更新您的问题!查看我的更新答案
    猜你喜欢
    • 2021-11-04
    • 1970-01-01
    • 2018-05-31
    • 1970-01-01
    • 2012-11-26
    • 2017-03-08
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    相关资源
    最近更新 更多