Hi Thiago,
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>.
Have you filed a JIRA about it? If not, please do it. I'll try to take a
look and maybe even a fix this weekend.
No I did not. Thougt this was "by intend" - tapestry complains as soon as the page root is not "html":

   *The root element of the rendered document was <div>, not <html>. A
   root element of <html> is needed when linking JavaScript and
   stylesheet resources.**
   *

Also tapestry would always inject it's stuff to the page. It might be hard to change this.

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.
Hmm, that would probably be more complex than worth in the end.

Not really. I started to investigate in it:

In my page html I have:
    <script type="text/javascript">
        var templateBaseUri="${templateBaseUri}";
    </script>

This returns an eventlink like "/mypage:gettemplate/"

In my angularjs-router I use this template URI in the following way:
            .when('/', {
                templateUrl: templateBaseUri+"startseite",

This mages angularjs read all the templates via tapestry event "gettemplate". The code there is:

        public Object onGetTemplate(String templateName)
        {
            try
            {
                Block block=resources.getBlock(templateName);
                System.err.println("Block: "+block);
                return block; // TODO render block as html fragment
            }
            catch (BlockNotFoundException ex)
            {
                System.err.println("Template not found: "+templateName);
                return new
   TextStreamResponse("text/html","<div>Template not found:
   "+templateName+"</div>");
            }
        }

Not in my tml I change
<script type="text/ng-template" id="startseite">
to
<t:block t:id="startseite">

That's all. The only thing left ist to render the block to HTML. If anyone know how it is done, please let me know.

Regards,
Michael.

Reply via email to