0

最初の質問!うまくいきますように。

私はこのバインドされたリストを持っています:

<table id="restaurants_list" data-bind="foreach : restaurants" style="display: none">
    <tr>
        <td data-bind="text:name"></td>
        <td data-bind="text:address.address1"></td>
        <td data-bind="text:address.address2"></td>
        <td data-bind="text:address.postcode + ' ' + address.suburb"></td>
        <td>
            <input type="button" value="show" data-bind="click: $root.showmap" />
        </td>
    </tr>
</table>
<div id="map"></div>

そしてここにモデルビュー:

function RestaurantsViewModel() {
    var self = this;
    self.restaurants = data;
    self.showMap = function (restaurant) {
        $("#map").show();
        ....
    };
    showMap(restaurants[0]);
};

最後にバインディング:

$(document).ready(function () {
    $("#link_get_restaurants").bind("click", get_restaurants);
});
function get_restaurants(event) {
    $("#restaurants_list").show();
    ko.applyBindings(new RestaurantsViewModel());
}

最初showmap(restaurants[0])はうまくいきます。しかし、 はclick : $root.showmap発火しません。

それで、私は何か間違ったことをしましたか?私もJqueryを使用していますが、それが原因かどうかはわかりません。

ありがとう。

4

2 に答える 2

5

次の 2 つの手順を試してください。

1) 交換する

click : $root.showmap

click : $root.showMap

2)大文字と小文字の区別を呪う:)

于 2013-03-09T08:02:20.017 に答える
2

showmapバインディングでスペルが間違っています(メソッドは ですshowMap)。にバインドしてみてください$root.showMap

<input type="button" value="show" data-bind="click: $root.showMap" />
于 2013-03-09T07:59:13.277 に答える