【问题标题】:Javascript console.log returns c() instead of the values of the objectJavascript console.log 返回 c() 而不是对象的值
【发布时间】:2014-08-12 04:05:55
【问题描述】:

在下面的订阅函数中创建self.subcategories 对象后,我正在尝试使用console.log 来获取它的值。我总是从下面的console.log(self.subcategories) 在我的控制台中获得c()。我知道数据就在那里,因为我可以在不同的代码中使用它。我只想能够在 console.log 中看到它,这样我就可以获得更多信息并知道如何处理它。

function QuestionFilter(data, categories, getSubcategoriesByCategoryUrl, getQuestionsBySubcategoryUrl) {
  var self = this;
  self.categories = ko.observableArray(categories);
  self.subcategories = ko.observableArray([]);
  self.selectedCategory = ko.observable();

  self.selectedCategory.subscribe(function(category) {
    function search(nameKey, myArray){
      for (var i=0; i < myArray.length; i++) {
        if (myArray[i].parentCategory_id === nameKey) {
          self.subcategories.push(myArray[i]);
        }
      }
    }   
    search(category, categories);
    console.log(self.subcategories);
  });
};

包含了 Knockout.js 库,因此有几个对其的引用。正如我所提到的,一切正常,我只是希望能够记录该对象以帮助我编写更多代码。有什么想法吗?

【问题讨论】:

标签: javascript object knockout.js observable console.log


【解决方案1】:

看看documentation(重点是我的):

从 observableArray 中读取信息

在幕后,observableArray 实际上是一个其值为数组的可观察对象(另外,observableArray 添加了一些如下所述的附加功能)。因此,您可以通过将observableArray 作为函数调用 来获取底层 JavaScript 数组,而无需任何参数,就像任何其他 observable 一样。然后您可以从该底层数组中读取信息。例如,

alert('The length of the array is ' + myObservableArray().length);
alert('The first element is ' + myObservableArray()[0]);

【讨论】:

  • 谢谢,我在想 JavaScript 有一些我不知道的简单的东西。我认为调用对象就足够了,因为它引用了 observable。我刚刚添加了(),它起作用了。所以,console.log(self.subcategories()); 给出了想要的输出。
  • Javascript 是一种语言,KO 是一种库。巨大的差异
猜你喜欢
  • 2014-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-16
  • 2017-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多