请有人帮助我从点击功能获取值,它没有在控制台上显示任何内容,我需要在点击特定列表项时获取标题和位置值
var locations = [
{title: 'Park Ave Penthouse', location: {lat: 40.7713024, lng: -73.9632393}},
{title: 'Chelsea Loft', location: {lat: 40.7444883, lng: -73.9949465}},
{title: 'Union Square Open Floor Plan', location: {lat: 40.7347062, lng: -73.9895759}}
var viewmodel = function(){
var self = this;
self.location = ko.observableArray();
locations.forEach(function(locat){
self.location.push(locat)
})
self.clickEvent= function(currentItem){
console.log(currentItem.title())
}
}
ko.applyBindings(new viewmodel());
html就像这样
<ul data-bind="foreach:location">
<li data-bind = "text:title,|click:$parent.clickEvent"></li>
</ul>
答案 0 :(得分:0)
默认情况下,Knockout点击绑定会将当前模型值作为第一个参数传递,因此您不需要做任何花哨的事情。您的代码中还有一些其他错误可能会阻止事件正常触发。
“|”你点击绑定中的符号可能不应该存在,除非这是我不熟悉的函数:
//<li data-bind = "text:title,|click:$parent.clickEvent"></li>
<li data-bind = "text:title, click:$parent.clickEvent"></li>
标题周围的额外括号不应该存在,因为您已将标题定义为字符串文字而不是可观察的。
//console.log(currentItem.title())
console.log(currentItem.title);
您还缺少多个分号和位置数组的结尾括号。
编辑:fiddle