【问题标题】:Converting data bind values to strings inside foreach knockout在 foreach 淘汰赛中将数据绑定值转换为字符串
【发布时间】:2023-04-07 21:16:02
【问题描述】:

我有这个fiddle。我要做的就是将嵌套在每个对象文字中的值转换为字符串。

<ul data-bind="foreach: people">
    <li>
       <span data-bind="text: Name"> </span>

        <span data-bind="text:Id"></span>

    </li>
</ul>



 function AppViewModel()
{
    var self = this;
    self.people = ko.observableArray([{"Name":"RobbStark",Id:1}, {"Name":"JohnSnow",Id:2}]);
}

ko.applyBindings(new AppViewModel());

我想使用查找 喜欢

var valueMap={
    1:"SanJose",
    2:"San Francisco"
}

像这样得到输出

RobbStark SanJose
JohnSnow San Francisco.

如何在 foreach 中将 observable 转换为不同的值?

【问题讨论】:

    标签: knockout.js knockout-mapping-plugin


    【解决方案1】:

    您所要做的就是从您的文本数据绑定中调用一个 javascript 函数,将 for each 循环中的当前项 ($data) 作为参数传入。示例fiddle

    Javascript:

    var valueMap={
        1:"SanJose",
        2:"San Francisco"
    }
    
     function AppViewModel()
    {
        var self = this;
    
        self.people = ko.observableArray([{"Name":"RobbStark",Id:1}, {"Name":"JohnSnow",Id:2}]);
        self.parsedName = function (item) {
            return item.Name + " " + valueMap[item.Id];
        };
    }
    
    ko.applyBindings(new AppViewModel());
    

    HTML

    <ul data-bind="foreach: people">
        <li>
           <span data-bind="text: $root.parsedName($data)"> </span>
        </li>
    </ul>
    

    KnockoutJS documentation 下的注释 #1 包含有关 $data 的更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      • 2016-12-12
      • 2012-04-27
      • 1970-01-01
      • 2019-02-14
      • 2015-07-18
      相关资源
      最近更新 更多