문제

나는 Merchant 베타 1.0.0 버전에서 Magento의 새로운 백엔드 그리드 시스템을 살펴보았습니다.
우선 감동받았다고 말하고 싶습니다.
이제 표시할 열을 선택하고, 순서를 변경하고, 반드시 열이 없는 속성을 기준으로 필터링할 수 있습니다.
그러나 그것은 중요하지 않습니다.
그리드가 어떻게 렌더링되는지 이해가 되지 않습니다.
템플릿 경로 힌트를 활성화함으로써 예를 들어 제품 그리드가 템플릿을 통해 렌더링되는 것을 확인했습니다. app/code/Magento/Ui/view/base/ui_component/templates/listing/default.xhtml 그리고 블록을 통해 Magento\Ui\Component\Listing.
템플릿을 편집했는데 이해가 안 되는 부분이 보였습니다.

<!-- ko template: getTemplate() --><!-- /ko -->

이 줄을 제거하고 활성화된 경우 캐시를 지우면 더 이상 그리드가 표시되지 않습니다.
누군가 이것이 무엇인지 설명할 수 있습니까? ko 그것은 무엇이며 어떻게 작동합니까?.
다른 템플릿에서도 이런 종류의 마크업을 발견합니다. app/code/Magento/Ui/view/base/web/templates/grid/controls/columns.html 예를 들어.

[업데이트]
방금 간단하게 검색해서 알아냈어요(duh!) ko 이것을 가리킨다: http://knockoutjs.com/ 하지만 아직 설명이 좀 필요해요.

도움이 되었습니까?

해결책

Magento 2가 사용하는 것 같습니다. 녹아웃.js, HTML 데이터 바인딩(어떤 경우에는 찾은 것과 같은 HTML 주석)을 사용하여 모델과 뷰를 연결하는 MVVM 프레임워크입니다.

여기서 이 주석은 가상 요소인 "템플릿"이며 아마도 Magento의 사용자 정의 바인딩일 것입니다(참조: http://knockoutjs.com/documentation/custom-bounds-for-virtual-elements.html), getTemplate() 분명히 실제 요소를 렌더링하는 JavaScript 함수입니다.

녹아웃을 이해하려면 knockoutjs.com에서 대화형 튜토리얼을 살펴보세요. 이해하기 쉽고 튜토리얼/문서가 정말 훌륭하다는 것을 알았습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 magento.stackexchange
scroll top