繁体   English   中英

Knockout.js不引人注目的事件处理程序不起作用

[英]Knockout.js Unobtrusive event handler not working

这是我用淘汰表“ foreach”构建的表。 用户选择一些行后,这些行将包含类“成功”。 所以我想使用self.create事件,该事件在用户按下按钮(位于ViewModel绑定到的元素外部的按钮)后触发,以处理此类表行。 但是Firebug说: TypeError:GrafikViewModel.books未定义 这是代码:

function InfoViewModel(baseUri) {
    //some viewmodel here
}
 //This is viewmodel I'm talking about.
function GrafikViewModel(grafikUri) {
    var self = this;
    self.books = ko.observableArray();
    self.create = function () {
      //Here we will handle tr with class 'success'
        alert("!!!");
    }
    $.getJSON(grafikUri, function (data) {
        self.books(data.$values);
    });          
}
$(document).ready(function () {
    var url = location.href.split("/");
    var baseUri;
    var tkod = url[5];
    if (url[4].toString = 'x') {
        baseUri = '/api/xTourist/' + tkod;
    }
    else if (url[4].toString = 'y') {
        baseUri = '/api/yTourist/' + tkod;
    }
    var grafikUri = '/api/grafik/' + tkod;
    ko.applyBindings(InfoViewModel(baseUri), document.getElementById('info'));
    ko.applyBindings(new GrafikViewModel(grafikUri), document.getElementById('grafik'));
    $('#book').click(function () {
      //Here I'm trying to call ViewModel.
        GrafikViewModel.books.create(ko.dataFor(this));
    });
});

尝试新的 GrafikViewModel()。books.create(ko.dataFor(this));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM