-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 に答える