no versions found for ApplicationFrameworkReferences / Components/View/ProtoViewLogic/protoviewlogic_disrelateElements / en

ProtoViewLogic: disrelateElements()

引数により指定された HTML 要素と対象の ProtoViewLogic の関連づけを解消します。

構文

protoViewLogic.disrelateElements() => object
protoViewLogic.disrelateElements(targetElement) => object
protoViewLogic.disrelateElements(targetElementName) => object

引数

  • targetElement: null | string | Element | Array<Element>

    関連づけを解消する対象です。

    null の場合、メソッド relateElements() によって割り当てられたプロパティすべてを削除し、参照している Element の所有権をすべて削除します。

    string の場合、対象の ProtoViewLogic から同名のプロパティを取得し、そのプロパティが持つ Element への参照を削除します。

返値: object

関連づけが解消された Element および Array<Element> をプロパティに持つオブジェクトです。

例外

  • ReferenceError
    • 対象の ProtoViewLogic に指定の名前のプロパティが存在しない場合
    • 対象の ProtoViewLogictargetElement で指定した Element または Array<Element> を所有していない場合
  • TypeError
    • targetElement として渡された値が nullstringElementArray<Element> 以外だった場合

解説

disrelateElements() の結果、relateElements() で追加されていた要素への参照が消去されます。

また、要素に ProtoViewLogic へのイベント通知のためのイベントリスナーが登録されていた場合、それらのイベントリスナーの登録を解除します。

同様に、要素に設定された所有権は破棄されます。

メッセージ

メッセージの概要についてはメッセージパッシングを、他のメッセージについては ViewLogic の状態変更を通知するメッセージを参照してください

この関数の呼び出し後、対象の ProtoViewLogic から自身に対してプロパティ id として vl$propertiesModified を値に持つメッセージが送られます。このメッセージが持つプロパティは以下の通りです:

  • id: "vl$propertiesModified"
  • code: null
  • param: { addedProperties, removedProperties }
    • addedProperties: ({ [property_name: string]: Element | Array<Element> })? --- 新たにプロパティとして追加された要素です。
    • removedProperties: ({ [property_name: string]: Element | Array<Element> })? --- プロパティから取り除かれた要素です。
  • origin: ProtoViewLogic
  • target: ProtoViewLogic