インライン編集にtoggleEditというjQueryプラグインを使用しています。
コードが実際にページで使用されている場合は、すべて正常に機能します。
ただし、私のテストスイートは次のエラーで失敗します。
TypeError: Cannot call method 'remove' of undefined
clear
この特定のプラグインのメソッド内からトリガーされるように追跡しました。そのソースファイルはここにあります。
そのコードには2つの関連するビットがあります。
1-_init
機能
self.element.addClass("toggleEdit toggleEdit-edit toggleEdit-edit-" +
self._tag(self.element))
//store reference to preview element
.data("toggleEdit-preview", self.p);
ご覧のとおり、プラグインが最初にインスタンス化されると、data
構造体を使用しself
て新しく作成された要素が格納されます。
2-clear
機能
self.element.data("toggleEdit-preview").remove();
次に、clear
関数はその構造にアクセスして要素を取得しようとします。そのとき、ジャスミン仕様の範囲内で、前述の例外を除いて失敗します。
誰かが似たようなものを見たことがありますか?
編集:
これは私の仕様です。エラーを再現できる最も単純なコードです。
it("should update the given attribute on the server", function(){
$('#user-details input, #user-details select').toggleEdit(); //this line triggers the error
});
http://alz.so/static/plugins/toggleedit/jquery.toggleedit.js