第一个问题!希望我做得好。
我有这个绑定列表:
<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,我不知道它是否可以来自那个。
感谢。
答案 0 :(得分:5)
尝试以下两个步骤:
1)替换
click : $root.showmap
与
click : $root.showMap
2)诅咒区分大小写:)
答案 1 :(得分:2)
showmap
在绑定中拼写错误(您的方法为showMap
)。你能尝试绑定到$root.showMap
吗?
<input type="button" value="show" data-bind="click: $root.showMap" />