Javascript KnockoutJS observableArray未初始化

Javascript KnockoutJS observableArray未初始化,javascript,knockout.js,Javascript,Knockout.js,代码 问题:当正确设置了所有数据和映射产品时(只是一组带有名称和一些其他字段的产品),行控制台.log(self.products)正在打印空数组 我真的很困惑,我第一次使用KO,但这似乎与教程中的代码完全相同。。。我只是使用产品而不是任务。我确信我遗漏了一些愚蠢的东西。这是用于设置可观察的: function Product(name) { this.name = ko.observable(name); } function ProductViewModel() { var sel

代码

问题:当正确设置了
所有数据
映射产品
时(只是一组带有名称和一些其他字段的产品),行
控制台.log(self.products)正在打印空数组


我真的很困惑,我第一次使用KO,但这似乎与教程中的代码完全相同。。。我只是使用产品而不是任务。我确信我遗漏了一些愚蠢的东西。

这是用于设置可观察的:

function Product(name) {
  this.name = ko.observable(name);
}

function ProductViewModel() {
  var self = this;
  self.products = ko.observableArray();
  $.getJSON("/admin/test", function(allData) {
    var mappedProducts = $.map(allData, function(item) { return new Product(item.name) });
    self.products(mappedProducts);
    console.log(self.products);
  });    
}

ko.applyBindings(new ProductViewModel());
这是为了得到观测值或计算值

self.products(mappedProducts)
注意括号


我希望它能有所帮助。

这是用于设置可观察的:

function Product(name) {
  this.name = ko.observable(name);
}

function ProductViewModel() {
  var self = this;
  self.products = ko.observableArray();
  $.getJSON("/admin/test", function(allData) {
    var mappedProducts = $.map(allData, function(item) { return new Product(item.name) });
    self.products(mappedProducts);
    console.log(self.products);
  });    
}

ko.applyBindings(new ProductViewModel());
这是为了得到观测值或计算值

self.products(mappedProducts)
注意括号


我希望它能有所帮助。

这是用于设置可观察的:

function Product(name) {
  this.name = ko.observable(name);
}

function ProductViewModel() {
  var self = this;
  self.products = ko.observableArray();
  $.getJSON("/admin/test", function(allData) {
    var mappedProducts = $.map(allData, function(item) { return new Product(item.name) });
    self.products(mappedProducts);
    console.log(self.products);
  });    
}

ko.applyBindings(new ProductViewModel());
这是为了得到观测值或计算值

self.products(mappedProducts)
注意括号


我希望它能有所帮助。

这是用于设置可观察的:

function Product(name) {
  this.name = ko.observable(name);
}

function ProductViewModel() {
  var self = this;
  self.products = ko.observableArray();
  $.getJSON("/admin/test", function(allData) {
    var mappedProducts = $.map(allData, function(item) { return new Product(item.name) });
    self.products(mappedProducts);
    console.log(self.products);
  });    
}

ko.applyBindings(new ProductViewModel());
这是为了得到观测值或计算值

self.products(mappedProducts)
注意括号

我希望它能有所帮助。

您应该将事物记录在可观察对象中,而不是记录可观察对象本身:

var mappedProducts = self.products();
有关包含代码的演示,请参阅

在问题的情况下,它取决于浏览器将记录什么。诚然,Chrome有些令人困惑:

[]

看起来像一个空数组Internet Explorer 10更有意义,输出:

function c(){if(0您应该将对象记录在可观察对象中,而不是记录可观察对象本身:

var mappedProducts = self.products();
有关包含代码的演示,请参阅

在问题的情况下,这取决于浏览器将记录什么。当然,Chrome有点令人困惑:

[]

看起来像一个空数组。Internet Explorer 10更有意义,输出:

function c(){if(0您应该将对象记录在可观察对象中,而不是记录可观察对象本身:

var mappedProducts = self.products();
有关包含代码的演示,请参阅

在问题的情况下,这取决于浏览器将记录什么。当然,Chrome有点令人困惑:

[]

看起来像一个空数组。Internet Explorer 10更有意义,输出:

function c(){if(0您应该将对象记录在可观察对象中,而不是记录可观察对象本身:

var mappedProducts = self.products();
有关包含代码的演示,请参阅

在问题的情况下,这取决于浏览器将记录什么。当然,Chrome有点令人困惑:

[]

看起来像一个空数组。Internet Explorer 10更有意义,输出:

函数c(){if(0