-1

在 foreach 我绑定数据如下:

<ul class="state-list" data-bind="foreach: places">
<li class="city-container" data-bind="click:currentPlace">                                
    <div>
        <img class="city-img" data-bind="attr: { src: img, alt: name }">
        <div class="city-facts">
            <em data-bind="text:name"></em>
            <!-- Not that we're not caching the stats template. This is to demonstrate passing ajax options -->
            <div data-bind="template: { name: 'stats', templateUrl: 'templates/info', ajax: { cache: false } }"></div>
        </div>
        <span style="clear:both;"></span>
    </div>
</li>
</ul>

并在点击时调用“currentPlace”:在 ViewModel 中我这样写:

    this.currentPlace = function(data,event){
        console.log("data=>",data);         
    }

当我打印数据时,它给了我完整的对象。

现在我的问题是如何访问该对象以获取我的图像、名称、城市等数据?

我尝试像 data.name, data['name'] 但它不起作用。

编辑如您所见,我正在使用另一个模板名称:'stats',现在如果我想读取上面的数据,我该怎么做?

“统计”模板如下:

<ul data-bind="foreach: stats">
    <li class="stat-container" data-bind="ifnot: editing">
        <div class="stat stat-name" data-bind="text:name"></div>
        <div class="stat stat-value" data-bind="text:value, click: toggleEdit "></div>
    </li>

    <li class="stat-container" data-bind="if: editing">
        <span class="stat stat-name" data-bind="text:name"></span>
        <input class="stat stat-value"type="text" data-bind="value: value"><input type="button" value="save" data-bind="click: toggleEdit">
    </li>
</ul>

提前致谢

4

1 回答 1

1

代替 :

this.currentPlace = function(data,event){
        console.log("data=>",data);         
}

尝试像这样安慰:

this.currentPlace = function(data,event){
        console.log(data);
        var name = ko.utils.unwrapObservable(data.name);
        console.log(name);
}

            Or (Even better than above)

this.currentPlace = function(){
        console.log(this);        
        var name = ko.utils.unwrapObservable(this.name);
        console.log(name);
}
于 2013-04-03T05:29:15.997 回答