2

オブジェクトごとに3つの文字列プロパティを持つ1406の配列があります。ただし、Chromeでレンダリングされることはなく、ページがフリーズするだけです。IEでは問題なく動作します。問題はpush.applyから発生します。私はknockout.js2.20を使用しています。なぜこれは永遠にかかるのでしょうか?1つのアイテムを配列に送信すると、問題なく機能します。ノックアウトは配列内の1406アイテムを処理できるべきではありませんか?

 <div data-bind="foreach: powerSchoolCourses">
                            <div data-bind="html: courseName"></div>
                        </div>

    var convertedPowerSchoolCourses = ko.utils.arrayMap(powerSchoolCourses, function (jsonArrayFromService) {
                        return new PowerSchool(item);
                    });
    self.powerSchoolCourses.push.apply(self.powerSchoolCourses, convertedPowerSchoolCourses );


        function PowerSchool(data) {
            var self = this;
            self.courseName = ko.observable(data.courseName);
            self.courseNumber = ko.observable(data.courseNumber);
            self.id = ko.observable(data.id);
        }
4

2 に答える 2

0

このコードに関して:

var convertedPowerSchoolCourses = 
  ko.utils.arrayMap(powerSchoolCourses, function (jsonArrayFromService) {
      return new PowerSchool(item);
});

arrayMap関数に間違ったパラメータを指定している可能性があります。最初のパラメーターはサービスからの生データである必要があり、2番目のパラメーターの関数には関数内で使用する必要のあるパラメーターがあります。だから私はあなたが本当にする必要があるのはこれだと思います:

var convertedPowerSchoolCourses = 
  ko.utils.arrayMap(jsonArrayFromService, function (item) {
      return new PowerSchool(item);
});
于 2012-12-16T03:48:57.233 に答える
0

そもそもこれをやるべきだ。コンピューターを再起動すると、Chromeで何かが行われました。混乱してすみません。ルール1は、何かが正しく機能しない場合は常にコンピューターを再起動します。

于 2012-12-17T15:48:10.730 に答える