tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andreas Andreou <andre...@gmail.com>
Subject Re: Tapestry 5.4, AngularJS and partial page content
Date Fri, 08 Nov 2013 12:04:54 GMT
I'm also saying that if you're after big/complex angular apps (within
Tapestry or standalone), then componentize at the angular level.

But why have Tapestry templates generate those static angular templates
instead of just serving them directly from the context ?


On Fri, Nov 8, 2013 at 9:29 AM, Michael Wyraz <michael.wyraz@evermind.de>wrote:

> Andreas,
>
> that's true for small single-page apps. But what if you have a really
> big/complex app with lot of markup?
> If you don't want to deliver such a app as one very big page, there are
> two options.
> The simplest is to create several tapestry pages and split the app into
> smaller pieces. But that's not always possible, especially when different
> pages interact with each other (example: one of our apps has multiple
> "modules" - e.g. management of contants and management of tasks. You can
> assign a contact to a task and even create a new contact from within a
> task. So the "task" module uses parts of the "contacts" module. If you
> split things into pages, it's hard to use frontend markup/code from a
> different page here).
> A different approach is to dynamically load the markup from other modules
> on demand. That's what we are doing at the moment, without angular but
> using tapestry's zones. We just inject a contact page into the tasks page
> and can provide a "create new contact" dialog via zone updates.
> I'm still doing some research on angular to see if it may be a technology
> we use in future - so I try to find out what's possible here and what not.
> Rendering partial pages is here just an option. Yesterday I've got my code
> working using blocks which I render to string. I used the code from
> https://issues.apache.org/jira/browse/TAP5-1864 and added my comment +
> code there. That works fine for me and gives me what I want. Nevertheless
> there's no reason why it should not be possible to render xml/xhtml
> fragments with tapestry which used to work on older versions and opens new
> usecases for tapestry.
>
> Regards,
> Michael.
>
>
>
>
>
>  I'm curious - why do you want to use tapestry's component mechanism to
>> provide the angular templates?
>>
>> Wouldn't they be loaded only once during the lifecycle of the angular app?
>> Wouldn't you then want to bundle
>> them in a single file and skip the extra template requests?
>>
>>
>>
>>
>> On Thu, Nov 7, 2013 at 5:46 PM, Michael Wyraz <michael.wyraz@evermind.de>
>> wrote:
>>
>>  Hello,
>>>
>>> I'm implementing a proof-of-concept application with tapestry 5.4 and
>>> angularjs. All basic things work, now I try to find some best practice.
>>>
>>> Angularjs provides the opportinity to dynamically load content (called
>>> 'view templates') into a page area and connect it with logic. This allows
>>> to split up a large application into parts - a concept very similar to
>>> tapestry's components. One can embed templates within the page
>>> (surrounded
>>> by a special script tag) or can load it from the server.
>>>
>>> Angularjs behaves in the following way to load "mytemplate":
>>> - check if there's a script tag <script type="text/ng-template"
>>> id="mytemplate"> - if yes take the script's content as template
>>> - otherwise load "mytemplate" from the server relative to the page's url
>>>
>>> Now I want to use tapestry's component mechanism to provide such
>>> templates:
>>>
>>> 1. I could simply put all into one page and put the template's content
>>> into tapestry components:
>>> <script type="text/ng-template" id="mytemplate">
>>>    <t:mytemplate/>
>>> </script>
>>> This is simple but results in a (very big) page
>>>
>>> 2. I could create a page for each template.
>>> This would make angular to load the template on demand.
>>> Problem here is that tapestry will not allow to create "partial pages"
>>> starting with a <div>.
>>>
>>> 3. Tweak angularjs to use some zone update mechanism to load the
>>> templates.
>>> I have no idea if/how this is possible. If someone already did such,
>>> please let me know.
>>>
>>> What do you think would the best way to do it?
>>>
>>> Regards,
>>> Michael.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: dev-help@tapestry.apache.org
>>>
>>>
>>>
>>
>
> --
> Mit freundlichen Grüßen / Regards
>
> Michael Wyraz
>
> evermind GmbH
> Schorlemmerstraße 1
> 04155 Leipzig
>
> Tel.:       +49 (0)341-25 39 66 - 0
> Fax:        +49 (0)341-25 39 66 - 1
> Funk:       +49 (0)177-73 00 00 3
> E-Mail:     michael.wyraz@evermind.de
>
> HRB: 21586
> Amtsgericht Leipzig
>
> Geschäftsführer:
> Christoph Klemm
> Thomas Grünert
> Michael Wyraz
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: dev-help@tapestry.apache.org
>
>


-- 
Andreas Andreou - andyhot@apache.org - http://blog.andyhot.gr
Apache Tapestry PMC / http://chesstu.be owner
Open Source / JEE Consulting

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message