javascript - knockout 对象中的js数据绑定(bind)子对象

标签 javascript knockout.js

我已经尝试了一段时间来弄清楚如何在 Knockout js 中对对象中的子对象进行数据绑定(bind)。我希望有人能帮我解决这个问题:)

我想显示 obj.externalLinks.facebook。我不知道如何对其进行数据绑定(bind)。这就是我所拥有的:

型号:

var obj = ko.observable();

var data = {    "id" : 1,
    "itemName" : "item name",
    "price": 250,
    "ticketLink" : "http://google.com",
    "externalLinks" : [
        { "homePage" : "http://google.com" },
        { "mySpace" : "http://myspace.com" },
        { "facebook" : "http://facebook.com" },
        { "wikipedia" : "http://en.wikipedia.org/" },
        { "facebookEventPage" : "http://facebook.com" }
        ]
    }

obj(data);

ko.applyBindings(obj)

查看:

<h1 data-bind="text: externalLinks[2]"></h1>

我知道数据绑定(bind)部分是错误的,但我该怎么做呢? :(

最佳答案

试试这个

HTML

<span data-bind="text: link('facebook')"></span>

JavaScript

var data = {    "id" : 1,
    "itemName" : "item name",
    "price": 250,
    "ticketLink" : "http://google.com",
    "externalLinks" : [
        { "homePage" : "http://google.com" },
        { "mySpace" : "http://myspace.com" },
        { "facebook" : "http://facebook.com" },
        { "wikipedia" : "http://en.wikipedia.org/" },
        { "facebookEventPage" : "http://facebook.com" }]
    };

var ViewModel = function(rawData){
    var self = this;
    var data = rawData;

    self.link = function(linkKey){
        for (var i=0; i<data.externalLinks.length; i++){
            var item = data.externalLinks[i];
            if(item[linkKey]){
                return item[linkKey];
            }
        }
    };    
};

ko.applyBindings(new ViewModel(data));

这样就可以通过linkKey绑定(bind)到link

jsfiddle样本

关于javascript - knockout 对象中的js数据绑定(bind)子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23889449/

相关文章:

javascript - 通过对 MongoDB 中数据的 API 调用为组件设置 props

javascript - 调整大小并使用 js 使用 resize() 方法实时查看结果

javascript - <select> 上的 applyBindings() 导致我的 subscribe() 触发,

events - 可以使用 Knockout 的 observable.subscribe 函数订阅哪些事件

javascript - 无法将默认值绑定(bind)到 knockoutJS 中的下拉菜单

javascript - Wijgrid 中是否可以有一个对象类型的单元格?

javascript - div 的背景不透明度而不影响所有子项

Javascript:在匿名函数中使用 t_this 是否被认为是有害的?

javascript - 每隔几秒刷新一次外部网页

javascript - Node .js : webpack : Babel : Unknown substitution "BODY" given