Javascript 我该如何在淘汰赛上为每一个人做准备?

Javascript 我该如何在淘汰赛上为每一个人做准备?,javascript,knockout.js,Javascript,Knockout.js,所有迭代KO-observableArray的尝试都失败了。流只是跳过块,就像数组是空的一样 它不是,因为它绑定到一些HTML,调试器显示7项 我用索引器尝试了一个普通的for,一个ECMA-5+forEach和现在KO自己的arrayForEach实用程序 var EditorViewModel = function (firstDayOfWeek) { this.firstDayOfWeek = firstDayOfWeek; this.days = ko.observab

所有迭代KO-observableArray的尝试都失败了。流只是跳过块,就像数组是空的一样

它不是,因为它绑定到一些HTML,调试器显示7项

我用索引器尝试了一个普通的
for
,一个ECMA-5+
forEach
和现在KO自己的
arrayForEach
实用程序

var EditorViewModel = function (firstDayOfWeek) {

    this.firstDayOfWeek = firstDayOfWeek;
    this.days = ko.observableArray([]); // Added in server-side generated view below.

    // Reads the activity data from each day and constructs and uploads models.
    this.save = function () {

        var basket = [];

        // Construct the upload activity models.

        ko.utils.arrayForEach(this.days(), function(d) {

            ... // never falls into this block.
关于这一点,网络上没有太多内容,所以我想这是一个不需要动脑筋的问题。很明显,我把事情搞砸了,但今天下午我还是没办法

this.days
数组在我看来不错


谢谢,Luke

这里的days是一个可观察的array它只不过是一个函数,要进行迭代,您需要读取days()之类的值,这将为您提供一个javascript数组

var-days=ko.可观测日([1,3,4,5,6]);
days().forEach(函数(v,i){
警戒(五);
});

我不知道为什么它不能与
forEach
方法一起工作,但我确实使用了一个正确编写的传统
for
索引迭代器

for (dayIndex = 0; dayIndex < this.days().length; dayIndex++) { ... }
for(dayIndex=0;dayIndex
你好。谢谢你的回答。我知道这一点,但没什么区别。它看起来就像是空的,但是我可以在控制台中用
this.days()
输出内容。非常奇怪。@Lukeppuplett比你想要达到的目标,你能再解释一点吗?好吧,为什么当它不是空的时候却表现得像空的?它证明了它更像是一个握紧拳头的人,而不是一个抓头的人。对我来说,它的工作原理是这样的,当数组中没有项目时,它不会循环,当数组中有值时,它会循环,这就是它应该做出的反应。是的,卢克,它应该工作,因为你做的事情是正确的。特别是因为调试器在foreach中显示this.days()为非空。并不是说这是正确的,但是您可以在foreach循环之前设置一个新的var,var arr=this.days();,而不是在那个arr上进行foreach?我想知道可观测对象是否在这个迭代函数中行为怪异。效用函数
arrayForEach
应该可以工作。您在console mate中发现任何错误。你能告诉我们你在
函数(d)
中得到了什么吗。欢呼控制台中没有错误。据我所知,没有任何错误,Chrome没有报告任何“编译”错误。这本应该奏效的。我应该把它拍下来。我相信稍后会再次出现,我可以看到交易是什么,我现在已经继续。重现问题。摆好小提琴。其他一切都是猜测。