私が作成したいくつかの jQuery プラグインがあります。すべて JSON フィードを解析し、Mustache.js を使用してレンダリングします。各プラグインは、表示する項目数の整数値を取ります。
Uncaught TypeError: Cannot read property 'link' of undefined
次のコードを使用してスタック オーバーフロー JSON フィードを解析しようとすると、エラーが発生しました。
$.ajax({
type: 'GET',
url: query,
contentType: "jsonp",
dataType: 'jsonp',
success: function (jsonp) {
/* loop through JSON items converting the time from UNIX timestamp
** format to readable words by parsing it through timeConverter() */
var i;
for (i = 0; i < jsonp.items.length; i++) {
if (i > num-1){
delete jsonp.items[i];
} else {
jsonp.items[i].creation_date = timeConverter(jsonp.items[i].creation_date);
}
}
var output = Mustache.render(must_template, jsonp);
element.html(output);
return element;
} //EOF CALLBACK
}); //EOF AJAX
クイックフィックスとして、操作をコメントアウトするだけで切り捨てを無効にしましたdelete
。このエラーは、Mustache.js が存在しない JSON オブジェクトの一部にアクセスしようとしていることを示しています。ただし、delete
操作は明らかにユーザー定義の制限を超えるアイテムにのみ影響します。
この動作が発生したとき、配列にはまだ 20 個の項目がありました。
注: はい、私はこの質問に自分で答えました。ただし、ベストプラクティス、より適切な方法、または何らかの方法で私の回答を改善する場合は、別の回答を喜んで受け入れます。:)