Introduction
As we already know ZK used to generate all html content within 'redraw' function of a ZK Widget, this is a little bit (?) hard to maintain and customize dom structure and style of component.
This article describe how to create ZK Component with AngularJS Directive so you can use a pure HTML template to generate dom elements of ZK Component and has some advantages:
1. Easier to maintain.
2. Easier to customize.
And also some drawbacks (part of them has workaround):
1. Need to load html template via several ajax call.
Workaround: You can load all templates at once,
for more information please refer to
AngularJS: load all templates in one file or AngularJS Merge Template
2. Will blink while rerender, you can use a fake dom to avoid blinking but this may affect the client side performance.
3. Has issue of dynamically insert and compile complex dom elements so need to rerender if dynamically add children.
Note:
1. This is just a POC done in a short time, probably not well organized and has some unknown issues.
2. I am not familiar with AngularJS so this POC may contains bad practice.
Pre-request
AngularJS Create Components
ZK Component Development Tutorial: Getting Started
ZK CDT: Fire Event to Server to Create a SelectableTextNote
Result
Online demo
http://screencast.com/t/nlLsNdbV8A
Description:
The concept is simple.
In AngularJS, a directive which support pure html template is a function that returns an Object Literal, and registered with a specific name (see Creating Custom Directives).
Both of them -- the name and the function -- can be declared at any places.
e.g. inside the Javascript of ZK Widget.
So we can specify Angular Tag (ngTag) and Angular Template Url (ngTemplateUrl) to each ZK Component and do below:
In ZK Component:
* Server Side:
** Make sure that each templateUrl maps to different tag.
* Client Side:
** Output ngTag in redraw function.
** Store component to zk.ngcomponents in redraw function.
** Register Angular Directive with ngTag.
In Angular Directive
* Use ngTemplateUrl as templateUrl in directive.
* Store $scope, $compile and controller to $element in controller function of directive.
* Bind ZK Widget with Angular Objects above in link function of directive.
Then we can use AngularJS Directive with pure HTML Template then control ZK Widget from AngularJS Directive and vice versa.
See
NgComp.java#fixTemplateMapping
NgComp.js#redraw
tabs.js#registerTemplate
zacomponents.js#addComponent
zacomponents.js#storeNgObjects
zacomponents.js#directive
zacomponents.js#bindng_
for more information.
Program Introduction
Testing zul page
index.zul
Testing Composer
TestComposer.java
AngularJS Library
angular.min.js
Bootstrap3 CSS Library
bootstrap.min.css
Utils for AngularJS ZK Widget
zacomponents.js
Basic APIs of AngularJS ZK Widget
NgComp.js
The Folder Contains All Default Templates
templates
Basic Java Class for AngularJS ZK Component
NgComp.java
Others:
Please refer to the full project below
Download
Full project at github
Demo Flash (click View Raw to download)
ZK has released the official support for AngularJS. http://www.zkoss.org/zk-angular-demo/
ReplyDeleteYes, hope it will get better and better.
DeleteGreat Article
DeleteB.Tech Final Year Projects for CSE in Angularjs
Project Centers in Chennai
JavaScript Training in Chennai
JavaScript Training in Chennai
Very Nice Post really expalined good information and Please keep updating us..... Thanks
ReplyDeleteJust wish to say your article is as astounding. The clearness in your
ReplyDeletesubmit is just excellent and i can suppose you’re knowledgeable in this subject.
ReplyDeleteThank you.Well it was nice post and very helpful information on AngularJS5 Online Training Hyderabad
Great post. I found very useful info from this post. Thank you very much.
ReplyDeleteAngularjs Developer
Excellent ! I am truly impressed that there is so much about this subject that has been revealed and you did it so nicely
ReplyDeleteAnika Digital Media
seo services
web design development
graphic design
Thanks
thank your valuable content.we are very thankful to you.one of the recommended blog.which is very useful to new learners and professionals.content is very useful for hadoop learners
ReplyDeleteBest Spring Classroom Training Institute
Best Devops Classroom Training Institute
Best Corejava Classroom Training Institute
Best Advanced Classroom Training Institute
Best Hadoop Training Institute
Best PHP Training Institute
ReplyDeleteBlog commenting : Thanks for Sharing This Article.It is very so much valuable content. I hope these Commenting lists will help to my website
devops online training
best angularjs online training
top angularjs online training
Amazing article. Your blog helped me to improve myself in many ways thanks for sharing this kind of wonderful informative blogs in live. I have bookmarked more article from this website. Such a nice blog you are providing
ReplyDeleteJava Training in Chennai
Java Training in Velachery
Java Training in Tambaram
Java Training in Porur
Java Training in OMR
Java Training in Annanagar
Thanks for Sharing This Article.It is very so much valuable content. I hope these Commenting lists will help to my website
ReplyDeleteAngularJS online training
best AngularJS online training
top AngularJS online training
Web Development Company In India
ReplyDeleteThis is my first time visit to your blog and I am very interested in the articles that you serve. Provide enough knowledge for me. Thank you for sharing useful and don't forget, keep sharing useful info:
ReplyDeleteData Science Training in Gurgaon
Bigdata Hadoop Training in Gurgaon
Spark Training in Gurgaon
Machine Learning Training in Gurgaon
Thank you for sharing this useful article with us. This blog is a very helpful to me in future. Keep sharing informative articles with us.
ReplyDeletehttps://www.paygonline.site/
Great sources for knowledge. Thank you for sharing this helpful article. It is very useful for me.
ReplyDeletehttps://www.ahmedabadcomputereducation.com/course/laravel-training-course/
Thank you for sharing this useful article with us. This blog is a very helpful to me. Keep sharing informative articles with us.
ReplyDeletehttps://www.sdsfin.in/services/project-finance-consultants-in-ahmedabad/
Thanks for Sharing This Article.It is very so much valuable content. I hope these Commenting lists will help to my website
ReplyDeleteBanking and Finance App Development Company
Thank you for sharing valuable information with us. Exactly, I am looking for this types of blog.
ReplyDeleteLoan Against Property
Loan Against Property in Vadodara
Loan Against Property in Ahmedabad
Loan Against Property Companies
Loan Against Property Interest Rate
learn something new
ReplyDeleteThank you for the great information. Keep Sharing it!
ReplyDeletehttps://saroitapes.com/
Thanks for sharing informative article.
ReplyDeletehttps://web30india.com/
Thank you so much for sharing all this wonderful information !!!! It is so appreciated!! You have good humor in your blogs. So much helpful and easy to read!
ReplyDeleteExcellent Article. Thank you for sharing!
ReplyDeletehttps://www.ahmedabadcomputereducation.com/
https://www.ahmedabadcomputereducation.com/course/live-project-training-in-asp-net/
https://www.ahmedabadcomputereducation.com/course/live-project-training-in-ios/
https://www.ahmedabadcomputereducation.com/course/live-project-training-in-java/
https://www.ahmedabadcomputereducation.com/course/live-project-training-in-android/
https://www.ahmedabadcomputereducation.com/course/live-project-training-in-php/
https://www.ahmedabadcomputereducation.com/course/live-project-training-in-python/
Excellent Article. Kepp Sharing with us!
ReplyDeletePHP Web Development
Web Application Development
Cloud Web Application
Web Application Security Expertise
Front End Development & UX Design
Multi Platform Integration Services
Hire PHP Programmer
abinitio training
ReplyDeletespark training
scala training
azure devops training
tableau training
sap sd training
sap bw on hana training
film izle - sex hikayeleri - sex hikayesi - erotik hikaye -
ReplyDeleteankara escort - bornova escort - alsancak escort - çeşme escort - izmir escort - smm panel - instagram takipçi satın al - instagram takipçi satın al - instagram takipçi satın al - instagram takipçi satın al - haber - instagram takipçi hilesi - instagram takipçi satın al - izmir evden eve nakliyat - seocu - instagram takipçi hilesi - instagram takipçi satın al - izmir escort - takipçi satın al - instagram takipçi satın al - tiktok takipçi satın al - instagram takipçi satın al - instagram takipçi satın al - instagram takipçi satın al - instagram takibi bırakanlar - buca escort -
karşıyaka escort - instagram takipçi hilesi
Great post.I'm glad to see people are still interested of Article.Thank you for an interesting read........
ReplyDeleteHire Remote Angular js Developer in India
virtual event platform A successful virtual networking event is one that is designed with the outcome in mind. Understanding your audience and their motivation for engaging provides a useful starting point for deciding how you will run your virtual networking event. website to sell concert tickets, zoom invitation email template and what do you need to become an event planner
ReplyDeleteVery Nice Blog…Thanks for sharing this information with us. Here am sharing some information about training institute.
ReplyDeletedigital transformation services by NGS
Great tips and very easy to understand. This will definitely be very useful for me when I get a chance to start my blog.
ReplyDeletedata science course in malaysia
Android Mobile App Development in Ahmedabad
ReplyDeleteWeb 3.0 India is the most trusted Web3 Blockchain Development and NFT Development Company in USA. We also provides ICO, STO development for cryptocurrency.
https://web30india.com/
EN SON ÇIKAN PERDE MODELLERİ
ReplyDeleteMobil Onay
mobil ödeme bozdurma
Nft Nasil Alınır
ankara evden eve nakliyat
trafik sigortası
dedektör
Kurma website
aşk kitapları
smm panel
ReplyDeletesmm panel
iş ilanları
instagram takipçi satın al
hirdavatciburada.com
WWW.BEYAZESYATEKNÄ°KSERVÄ°SÄ°.COM.TR
Servis
tiktok jeton hilesi
This comment has been removed by the author.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteBandicam Keygen isn't bundled, unlike other applications recording packs, by default, using the recorder, but is offered at a lower cost Bandicam Serial Key
ReplyDeletePortraiture, free and safe download. Portraiture latest version: A portrait plugin for Photoshop. Portraiture is a photography program Portraiture Plugin For Photoshop CS6 Free Download Crack
ReplyDeleteWe appreciate you sharing this informative post with us. Continue providing us with helpful content.
ReplyDeletehttps://www.ownuxglobal.com/
This is a nice informative and timely taken blog. Keep Posting and useful content. if you are looking for the best AngularJS training then, You can contact us.
ReplyDeleteThis is so helpful. Thanks for sharing your insights!
ReplyDeletehire remote mobile app developers
Looking for innovative front-end developers that work remotely! Come work with us from wherever you are if you have UI/UX design experience, a firm grasp of responsive web development, and a drive for innovation.
ReplyDeletehire remote web developer
Great post! The insights on this topic are really helpful, especially for those of us in Software Development Life Cycle Phases .Thanks for sharing such valuable information!
ReplyDelete