magento2 knockoutjs 사용자 정의 템플릿 바인딩


12

magento2의 특히 knockoutjs를 이해하려고합니다. 특히 사용자 정의 템플릿 바인딩.이 렌더링의 아이디어 흐름을 얻을 수 없습니다.

아무도 그것이 어떻게 작동하는지 알 수 있습니까? atleast getTemplate의 정의는 어디서 찾을 수 있습니까?

<!-- ko if: (!quoteIsVirtual) -->
            <!-- ko foreach: getRegion('customer-email') -->
                <!-- ko template: getTemplate() --><!-- /ko -->
            <!--/ko-->
        <!--/ko-->

여기 젠토 2 knockoutjs에 대한 자세한 설명입니다 ibnab.com/en/blog/magento-2/...
FireBear

답변:


26

열다

마 젠토 / 체크 아웃 / 뷰 / 프런트 엔드 / 레이아웃 / 체크 아웃 _index_index.xml
파일. 다음 줄을 봐

<item name = "component"xsi : type = "string"> Magento_Checkout / js / view / shipping </ item>

그래서

마 젠토 / 체크 아웃 /view/frontend/web/js/view/shipping.js
이것은 당신의 js 파일입니다. 열어 봐. 보기
템플릿 : 'Magento_Checkout / shipping'
이것은이 JS의 템플릿 파일입니다.

로 돌아가

마 젠토 / 체크 아웃 / 뷰 / 프런트 엔드 / 레이아웃 / 체크 아웃 _index_index.xml
122 행 (M2 2.0.0-rc)
<item name = "children"xsi : type = "array">
여기에 자식 노드가 있습니다. 처럼

<item name = "customer-email"xsi : type = "array">
----
---
</ item>

그래서

getTemplate ()
현재 템플릿 렌더링을 담당합니다.

마 젠토 / 체크 아웃 /view/frontend/web/template/form/element/email.html

그것을 열면 다음 코드 스 니펫을 볼 수 있습니다


<!-- ko foreach: getRegion('additional-login-form-fields') -->
            <!-- ko template: getTemplate() --><!-- /ko -->
            <!-- /ko -->

이 'additional-login-form-fields'노드는 'customer-email'의 하위 노드입니다.

코드 스 니펫의 경우 견적이 가상이 아닌 경우 ko를 선택하십시오.

foreach : getRegion ( '고객 이메일')
이것은 자식 노드 이름이며 템플릿을 렌더링합니다.


getRegion ( 'customer-email')은 <item name = "customer-email"xsi : type = "array">를 의미합니다. 맞습니까? 나는 그것이 그것의 자식 노드를 반복한다는 것을 의미합니다.
Sivakumar K

현재 템플릿 만 렌더링합니다. 나는 대답을 업데이트했다.
Sohel Rana

<item name = "component"xsi : type = "string"> uiComponent </ item> .so를 사용하여 xml ..core 팀에서 response.so에 여러 번 감사드립니다.이 경우 어떤 js 파일을 고려합니까?
시바 쿠마르 K

예. Magento / Ui / view / base / requirejs-config.js 파일을보십시오. 여기서 uiComponent는 js로 선언됩니다.
Sohel Rana

녹아웃 템플릿에서 Site URl, Checkoutpageurl을 얻는 방법은 무엇입니까?
Arun Karnawat

1

getTemplate의 정의는 다음에서 찾을 수 있습니다.

`root\vendor\magento\module-ui\view\base\web\js\lib\core\element\element.js` 

줄 번호에서 파일 255-257.

  getTemplate: function () {
                return this.template;
            }

위의 코드는 magento 2.0.0 일반 가용성을 기반으로합니다.
Rakesh Jesadiya
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.