대해서는 source
노드
source
데이터 배열의 노드 키의 값은 대응하여 리턴 \Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderInterface::getData
하여 UI 부품의 제조 방법.
예를 들어 customer_form UI를 생각해 봅시다 .
파일/Magento/Customer/view/base/ui_component/customer_form.xml
여기에서 대부분의 필드에서 Magento가 노드 customer
아래의 값을 사용한다는 것을 알 수 있습니다 source
.
그러나 address
fieldset 아래의 필드 가이 값이로 변경 될 때까지 기다리 십시오 address
.
이제 customer_form UI 구성 요소에 해당하는 DataProvider 를 간단히 살펴 보겠습니다 .
수업은 입니다.
\Magento\Customer\Model\Customer\DataProvider
대략 getData
이 클래스 의 메소드 는 customer_form 구성 요소가 선언 한 해당 필드에 채워진 데이터를 리턴합니다 .
지금 짐작할 수 있듯이 , 노드 의 고객 가치 는 메소드 에서 source
주요 고객 아래에 저장된 값을 사용하도록 지시 getData
하는 반면, 주소 는 반환 된 데이터에서 source
키 주소 아래에 저장된 데이터를 가리 킵니다 .
자세히 살펴보기 :
<field name="firstname" formElement="input">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
item name="source" xsi:type="string">customer</item>
</item>
</argument>
</field>
위의 필드 는 고객의 DataProvider가 반환 한 주요 고객 아래에 저장된 데이터에서 이름 값을 가져옵니다 .
아래의 경우 firstname 값의 소스는 키 주소 아래에 저장된 데이터입니다 .
<field name="firstname" formElement="input">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="source" xsi:type="string">address</item>
</item>
</argument>
</field>
대해서는 dataScope
노드
dataScope
노드는이 값을 변경할 수 있습니다 이름 예를 들어, 사용자의 입력 (필드)의 속성을
<field name="title">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="dataType" xsi:type="string">text</item>
<item name="formElement" xsi:type="string">input</item
<item name="dataScope" xsi:type="string">field_name</item>
</item>
</argument>
</field>
다음과 같이 결과 입력 렌더링 될 것입니다 :<input name="field_name"...>
dataScope
점으로 구분 된 노드에 값을 쓸 수도 있습니다 . customer.address.firstname
이 경우 결과 입력은 다음과 같이 렌더링됩니다. <input name="customer[address][firstname]"...>
여기서 마술이 발생합니다 .
또한 dataScope
노드 는 필드에 대해 검색된 값의 경로를 변경합니다 . 이는 연결 기술을 통해 달성됩니다 .