Javascript 敲除foreach绑定不呈现任何内容

Javascript 敲除foreach绑定不呈现任何内容,javascript,knockout.js,Javascript,Knockout.js,我认为这是一个相当直接的淘汰赛。我有一个来自WebApi的模型,它有一个包含Success元素的数组。我需要success的值来确定呈现哪些属性。我已经验证了所有数据都来自WebApi ok,但除了表shell呈现之外什么都没有。开发人员控制台中没有错误 HTML 这是在监视一个进程,该进程具有来自多个端点的提要,因此我在页面上有多个ViewModels。因此,我在页面的其他地方构建了一个粗略的例子来说明这一点 那件事 var sampleModelData=[{ “ThingA”:“A”,

我认为这是一个相当直接的淘汰赛。我有一个来自WebApi的模型,它有一个包含
Success
元素的数组。我需要success的值来确定呈现哪些属性。我已经验证了所有数据都来自WebApi ok,但除了表shell呈现之外什么都没有。开发人员控制台中没有错误

HTML 这是在监视一个进程,该进程具有来自多个端点的提要,因此我在页面上有多个ViewModels。因此,我在页面的其他地方构建了一个粗略的例子来说明这一点

那件事

var sampleModelData=[{
“ThingA”:“A”,
“ThingB”:“B”,
“ThingC”:“C”,
“成功”:错误
}, {
“ThingA”:“A”,
“ThingB”:“B”,
“ThingC”:“C”,
“成功”:真的吗
}]
变量viewModel1={
historyArray:ko.observableArray()
};
功能数据库(数据){
viewModel1.historyArray(数据);
}
$(文档).ready(函数(){
应用绑定(viewModel1,document.getElementById(“model1Wrapper”);
onNewHistory(sampleModelData);
})
我不得不屏蔽一些指定,但要点是,ajax调用在示例中返回一个数组。有一个函数被调用来将新数据更新到可观察数据中,我希望该表能够重新加载,但事实并非如此

其他避蚊胺
  • 有时表中没有模型数据,所以我加载它并等待 更新。所有其他ViewModel都是这样加载的,但是 是唯一一个有数组的,也是我唯一遇到麻烦的 有
  • 我尝试过取消if/ifnot业务,但没有成功

  • Fiddler讨厌我,我还没有建立一个干净的版本来尝试

  • 我快速浏览了一些相关的问题,似乎没有什么适合我的问题。或者这个例子要复杂得多

谢谢

此代码中存在问题:

var viewModel1 = {
    historyArray = ko.observableArray();
}
您将声明对象的语法与函数内部代码的语法混合在一起。声明对象时,不要使用
=
。而是使用

如果您将声明更改为以下内容,它应该可以工作

var viewModel1 = {
    historyArray: ko.observableArray()
}

此代码中存在问题:

var viewModel1 = {
    historyArray = ko.observableArray();
}
您将声明对象的语法与函数内部代码的语法混合在一起。声明对象时,不要使用
=
。而是使用

如果您将声明更改为以下内容,它应该可以工作

var viewModel1 = {
    historyArray: ko.observableArray()
}

只是为这个问题添加另一个答案,以防将来有人遇到它。我有这个问题,这是在方法中初始化我的可观察数组的结果。我不是故意这样做的(复制粘贴错误),而且它在控制台中没有产生任何错误,因此很难跟踪

例如:

LoadJSArrayIntoObservable(results) {
    vm.validationResults = ko.observableArray();  <---- THIS IS INVALID. 
    vm.validationResults([]);  <---- THIS IS WHAT I MEANT TO DO!!

    $.each(results, function () {
        try {
            vm.validationResults.push(new ValidationResult(this));
        }
        catch (err) {
            alert(err.message);
        }
    });
LoadJSArrayIntoObservable(结果){

vm.validationResults=ko.observableArray();只是为这个问题添加了另一个答案,以防将来有人遇到它。我有这个问题,这是在方法中初始化我的可观察数组的结果。我不是有意这么做的(复制粘贴错误)而且它在控制台中没有产生任何错误,因此很难跟踪

例如:

LoadJSArrayIntoObservable(results) {
    vm.validationResults = ko.observableArray();  <---- THIS IS INVALID. 
    vm.validationResults([]);  <---- THIS IS WHAT I MEANT TO DO!!

    $.each(results, function () {
        try {
            vm.validationResults.push(new ValidationResult(this));
        }
        catch (err) {
            alert(err.message);
        }
    });
LoadJSArrayIntoObservable(结果){

vm.validationResults=ko.observableArray();您是否检查了控制台中的错误?上面的代码中有语法错误。在修复语法错误后,您是否检查了控制台中的错误?上面的代码中有语法错误。在修复语法错误后,您好,很抱歉,当我制作模型时,我没有正确复制它。我查看了我尝试运行的版本按照你所说的方式进行设置。我在帖子上做了一个编辑。修复了错误后,代码似乎正常工作。下面是一个小提琴示例:它指出了我这方面的错误。我想知道我从一开始就足够理解这一点是很好的。是时候检查代码了……你也可以使用“类”而不是内联对象初始值设定项语法。允许您在需要时重用和实例化多个viewmodels。@JustinGrant我在该div上应用了另一个viewmodel的绑定,这是由于我在上面的某个HTML错误造成的。当应用这些绑定时,它已经绑定并爆炸了。我升级到ko v3,它给出了错误消息f最后,我明白了。感谢你至少确认了我所做的是方向正确的!嗨,很抱歉,当我制作模型时,我没有正确地复制它。我查看了我试图运行的版本,它是按照你所说的方式设置的。我在帖子上进行了编辑。修复了错误后,代码似乎正常工作。下面是一个小提琴示例:哪个poi在我这一方面,我发现有些错误。我想知道我一开始就理解得足够好是件好事。是时候检查代码了……你也可以使用“类”而不是内联对象初始值设定项语法。允许您在需要时重用和实例化多个viewmodels。@JustinGrant我在该div上应用了另一个viewmodel的绑定,这是由于我在上面的某个HTML错误造成的。当应用这些绑定时,它已经绑定并爆炸了。我升级到ko v3,它给出了错误消息f最后,我明白了。至少感谢你确认我所做的是方向正确的!