我是使用 Knockout js 的新手,我尝试显示一个列表,但出现以下错误

Posted

技术标签:

【中文标题】我是使用 Knockout js 的新手,我尝试显示一个列表,但出现以下错误【英文标题】:I'm new using Knockout js, I try to show a list and I get the following error 【发布时间】:2020-02-14 17:12:30 【问题描述】:

未捕获的引用错误:无法处理绑定“foreach: function()return lista”

---------科迪戈----

$(function () 
    ko.applyBindings(modelView);
    modelView.viewCourses();
);
var modelView = 
    Courses: ko.observableArray([]),
    viewCourses: function () 
        var thisObj = this;
        try 
            $.ajax(
                url: '/Home/ListaConcepto',
                type: 'GET',
                dataType: 'json',
                contentType: 'application/json',
                success: function (data) 
                    thisObj.lista(data); 
                ,
                error: function (err) 
                    alert(err.status + " : " + err.statusText);
                
            );
         catch (e) 
            window.location.href = '/Home/Index/';
        
    
;

【问题讨论】:

你的 html 中有这样的绑定吗?淘汰赛 foreach 绑定应该只是 <div data-bind="foreach: lista"> ...markup to foreach over...</div> 【参考方案1】:

这个Obj上不存在thisObj.lista(data);lista发布的代码问题。需要添加。

$(function () 
    ko.applyBindings(modelView);
    modelView.viewCourses();
);
var modelView = 
    Courses: ko.observableArray([]),
    viewCourses: function () 
        var thisObj = this;
        thisObj.lista = ko.observableArray(); // adding this line should make it work.
        try 
            $.ajax(
                url: '/Home/ListaConcepto',
                type: 'GET',
                dataType: 'json',
                contentType: 'application/json',
                success: function (data) 
                    thisObj.lista(data); 
                ,
                error: function (err) 
                    alert(err.status + " : " + err.statusText);
                
            );
         catch (e) 
            window.location.href = '/Home/Index/';
        
    
;

【讨论】:

以上是关于我是使用 Knockout js 的新手,我尝试显示一个列表,但出现以下错误的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Knockout.js 将多个 View 绑定到单个 ViewModel

Typescript 和 Knockout.js

使用关键字“this”和“that”的 knockout.js

通过 knockout.js 将选中的复选框值传递给 javascript

Knockout js foreach 按字母顺序绑定

KnockOut.js 验证始终为真/errors.length = 0