Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t在ViewModel敲除中执行函数_Javascript_Jquery_Knockout.js - Fatal编程技术网

Javascript Can';t在ViewModel敲除中执行函数

Javascript Can';t在ViewModel敲除中执行函数,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我有一个这样的网格系统 <div class="section table_section"> <div class="section_inner" id="divTestKoRemoteGrid"> <div class="title_wrapper" data-bind="with: Grid"> <h2 data-bind="text: TotalCount"> Prices</h2>

我有一个这样的网格系统

<div class="section table_section">
<div class="section_inner" id="divTestKoRemoteGrid">
    <div class="title_wrapper" data-bind="with: Grid">
        <h2 data-bind="text: TotalCount">
            Prices</h2>
    </div>
    <div class="section_content">
        <div id="product_list" data-bind="with: Grid">
<!--[if !IE]>start table_wrapper<![endif]-->
<div class="table_wrapper">
    <div class="table_wrapper_inner">
        <table cellpadding="0" cellspacing="0" width="100%">
            <tbody>
                <tr>
                    <th>
                        No.
                    </th>
                    <th>
                        Tier
                    </th>
                    <th>
                    </th>
                </tr>
                <!-- ko foreach: Data -->
                <tr data-bind="css: { second: $index() % 2 }">
                    <td data-bind="text: Id" style="width: 26px;">
                    </td>
                    <td data-bind="text: Tier" style="width: 35px;">
                    </td>
                    <td style="width: 120px;">
                        <div class="actions_menu">
                            <ul>
                                <li><a class="edit" href="">edit</a></li>
                                <li><a class="delete" href="">deny</a></li>
                            </ul>
                        </div>
                    </td>
                </tr>
                <!-- /ko -->
            </tbody>
        </table>
    </div>
</div>
<!--[if !IE]>end table_wrapper<![endif]-->
</div>
<!-- ko with: Grid -->
<div class="pagination" data-bind="with: Page">
    <span class="page_no" data-bind="text: TotalCount"></span>
    <ul class="pag_list" data-bind="foreach: ko.utils.range(1, TotalPage)">
        <li><a href="" data-bind="click: $parent.Goto, css:{current_page: $data == $parent.CurrentPage}">
            <span><span data-bind="text: $data"></span></span></a></li>
    </ul>
</div>
<!-- /ko -->
    </div>
</div>
</div>
当我尝试执行GoTo函数(在ListModel中)时,浏览器找不到该函数,并且无法在click事件中绑定knockout


我试着用5天时间解决这个问题。您认为是什么问题?

问题是您正在访问父级。这将使您获得页面,而不是您需要的网格。要解决此问题,请使用父母[]。它包含当前可用的所有父项,在这里,您需要使用
父项[1]

我有一把小提琴样品


另外,请查看淘汰网站上的文档,问题是您正在访问家长。这将使您获得页面,而不是您需要的网格。要解决此问题,请使用父母[]。它包含当前可用的所有父项,在这里,您需要使用
父项[1]

我有一把小提琴样品


再看一下淘汰网站上的文档

我可以从您的示例代码中假设的唯一一件事是,您忘记将my声明为VAR实际上是存在的,但我忘了在这里添加。我正在编辑示例代码中唯一可以假设的是,您忘了将my声明为VAR,实际上是这样,但我忘了在这里添加。我在编辑
var my = my || {};

$(function () {

my.PriceListViewModel = (function () {

    var 
        grid = ko.observable(),
        loadGrid = function () {
            my.ListModel.LoadData();
            grid(my.ListModel);
        };
    return {
        Grid: grid,
        LoadGrid: loadGrid
    };
})();

my.ListModel = (function () {
    var 
        data = ko.observableArray([]),
        totalCount = ko.observable(),
        page = ko.observable(),
        goTo = function (d) {
            $.getJSON("/prices/GetByFilterViaJSON?limit=6&page=" + d, function (list) {
                data(list.Data);
                page(list.Page);
            });
        },
        loadData = function () {
            $.ajax({
                type: 'GET',
                url: '/prices/GetByFilterViaJSON',
                dataType: 'json',
                success: function (list) {
                    data(list.Data);
                    page(list.Page);
                    totalCount(list.TotalCount);
                },
                data: { limit: 6 },
                async: false
            });
        };
    return {
        Data: data,
        TotalCount: totalCount,
        Page: page,
        GoTo: goTo,
        LoadData: loadData
    };
})();

my.PageModel = (function () {
    var 
        currentPage = ko.observable(1),
        totalCount = ko.observable(1),
        limit = ko.observable(),
        start = ko.observable(),
        nextPage = ko.observable(1),
        previousPage = ko.observable(1),
        totalPage = ko.observable(1),
        loadData = function (pageData) {
            currentPage(pageData.CurrentPage);
            totalCount(pageData.TotalCount);
            limit(pageData.Limit); 
            start(pageData.Start);
            nextPage(pageData.NextPage);
            previousPage(pageData.PreviousPage);
            totalPage(pageData.TotalPage);
        };
    return {
        CurrentPage: currentPage,
        TotalCount: totalCount,
        Limit: limit,
        Start: start,
        NextPage: nextPage,
        PreviousPage: previousPage,
        TotalPage: totalPage,
        LoadData: loadData
    };

})();

my.PriceListViewModel.LoadGrid();
ko.applyBindings(my.PriceListViewModel);
});