Prado 2.1RC1 で実行されている比較的古い webapp があり、いくつかの素敵なGoogle 視覚化チャートを追加して強化しようとしています。
この問題は、Google jsapi (jquery に依存) と prado2.1 で使用される古いライブラリを統合するときに発生しました。
Prado はいくつかの組み込みライブラリ ( base.js、dom.js、ajax.jsなど) +プロトタイプ 1.4を使用します。
チュートリアルの例を統合しようとした最初の瞬間に、Chrome JavaScript コンソールに 2 つのエラーが記録されました。
Uncaught RangeError: base.js:524の無効な配列の長さ
キャッチされていない TypeError: undefined は関数ではありません
base.jsを見ると、シフトが次のように実装されているため、これらのエラーはシフト関数のプロトタイプのバグが原因であることがわかりました (私はそう思います)。
shift function() {
var result = this[0];
for (var i = 0; i < this.length - 1; i++)
this[i] = this[i + 1];
this.length--;
return result;
}
しかし、this.length==0 の場合、this.length-- が爆発します。
したがって、このバグを修正した後、グーグルの素敵なチャートが表示されることを期待していました...しかし、違います。JavaScriptコンソールでエラーはスローされませんでしたが、Googleチャートを追加する必要があるdivで、このテキストを赤い背景でレンダリングしました:
数値は関数ではありません
このエラーについてはわかりません。webapp に必要な大量の JavaScript ライブラリが混乱していると思われます。
古い非推奨のサポートされていないバージョンの Prado と Prototype を使用していることを考えると、状況があまり良くないことはわかっています。しかし、私はphpとこのフレームワークに非常に慣れていません。の新しい Prado バージョンに移行して JavaScript ライブラリを更新するのにどれくらいの時間がかかるか、実際にはわかりません。経験豊富な方の中には、この状況で何をするのが最善か、またはどのように進めるべきかを教えてくれるかもしれません...
ありがとう!!問題の詳細が必要な場合はお知らせください。