0

select イベントまたは select メソッドによってトリガーされた場合でも、select コールバックから同じ動作が得られない理由を理解しようと何時間も費やす可能性のある人向けです。

この方法を使用している場合は反応がなかったのに、アイテムを手動で選択した場合はなぜこれが完全に機能しているのか理解できませんでした. まったくトリガーされていないように見えたため、ウィジェット自体でツリー要素でイベントをトリガーしようとしました。

select: function(e){
  var item = e.node;
  appui.f.post("admin/object_editor/obj/" +
    ( typeof(item.class) !== "undefined" ? "object" : "field" ) +
    "/" + item.id + "/" + item.uid, {partial:1}, $("#object_cfg_container"));
}
4

1 に答える 1

0

関数はトリガーされますが、select メソッドを使用すると、最初の行からエラーが返されます。

実際に何が起こるかというと、イベントが関数の引数として送信され、その中に新しく選択されたオブジェクトであるノード プロパティを見つけることができます。

ただし、select メソッドを使用すると、イベント引数に node プロパティがなくなります。

したがって、引数なしで使用された select() メソッドが選択された要素を返すことに気付いたかもしれません。

しかし、新しい問題が発生します。この関数は、イベント中に起動されたときに古い選択アイテムを返しますが、メソッドとして起動された場合は新しく選択されたアイテムを返します...

私の解決策:

select: function(e){
  var item = e.node ? e.node : this.select(),  
      data = this.dataItem(item);
  ....
}
于 2013-04-15T20:10:26.787 に答える