Don't know if this has been mentioned, but when Angular.js makes XHR request via $http, it does NOT by default set the header, which Tapestry checks to do request.isXHR().
See http://stackoverflow.com/questions/18168836/angularjs-resource-not-sending-x-requested-with Therefore it appears to be necessary to do the following: yourModule.config(['$httpProvider', function($httpProvider) { $httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest'; }]); Otherwise event handlers can throw the "JSONObject cannot be handled" type of exception. On Wed, Sep 16, 2015 at 4:52 PM, françois facon <fra.fa...@gmail.com> wrote: > 2015-09-15 0:31 GMT+02:00 Thiago H de Paula Figueiredo <thiag...@gmail.com > >: > > > On Mon, 14 Sep 2015 14:21:46 -0300, Kalle Korhonen < > > kalle.o.korho...@gmail.com> wrote: > > > > React and Ember Fastboot solve the SEO problem by rendering the first > load > >> on server, but Angular doesn't offer the same functionality natively. > >> There's https://prerender.io/ though, but it's another component you > need > >> to deploy. > >> > > > > I like the concept of isomorphic webapps: the same JavaScript used in the > > client-side is used in the server-side for doing an initial rendering. > > > > > The links above demonstrate it for Spring MVC, but I believe it could be > > very easily done with Tapestry too: > > > http://winterbe.com/posts/2015/02/16/isomorphic-react-webapps-on-the-jvm/ > > > > > https://speakerdeck.com/sdeleuze/isomorphic-templating-with-spring-boot-nashorn-and-react > > > > > This would be a great feature. > The link above talk about Angular 2 server side rendering > > https://docs.google.com/document/d/1q6g9UlmEZDXgrkY88AJZ6MUrUxcnwhBGS0EXbVlYicY/edit > > > > > > > > >> Kalle > >> > >> On Mon, Sep 14, 2015 at 6:20 AM, George Christman < > >> gchrist...@cardaddy.com> > >> wrote: > >> > >> Very nice Arve, do you have any experience making these angular pages > SEO > >>> friendly? > >>> > >>> On Sun, Sep 6, 2015 at 11:08 AM, Arve Klev <arvek...@gmail.com> wrote: > >>> > >>> > Hello. > >>> > Yes it is VERY easy to to use AngularJS (or eg. > >>> Highchart/Raphael/JChart) > >>> > with Tapestry 5.4. > >>> > Use Tapestry as usual and let different pages do what you want (eg. > one > >>> > page as an AngularJS SPA). > >>> > Every page use the same Layout component. > >>> > > >>> > 1. Place angular.js in src/main/resources/META-INF/modules/angular.js > >>> > 2. Create a file > >>> src/main/resources/META-INF/modules/angular-bootstrap.js > >>> > that bootstrap angular and your own angular code > >>> > 3. Create a file > src/main/resources/META-INF/modules/my-angular-code.js > >>> > 4. Create a file > src/main/resources/META-INF/assets/my-angular-code.css > >>> for > >>> > decoration > >>> > 5. Import angular-bootstrap.js and my-angular-code.css in your > >>> class-file: > >>> > @Import(module = { "angular-bootstrap" }, stylesheet = { > >>> > "my-angular-code.css" }) > >>> > > >>> > I have a running example here: http://tap54-arvek.rhcloud.com > >>> > The code at GitHub: > >>> > https://github.com/arvek-xx/tapestry54-javascript-examples > >>> > > >>> > In the "NgPhones"-page, I use a rest-service to retrieve data. > >>> > > >>> > > >>> > Sincerely, Arve Klev > >>> > > >>> > 2015-08-10 19:59 GMT+02:00 Taha Siddiqi <tawus.tapes...@gmail.com>: > >>> > > >>> > > Well my way is to spend sometime on anything I find interesting... > >>> > > (Usually Saturday mornings) > >>> > > > >>> > > That is how I found tapestry and now Clojure/clojusescript, mongo, > >>> Titan > >>> > > graphs etc... So exciting !! > >>> > > > >>> > > Sent from my iPhone > >>> > > > >>> > > > On Aug 10, 2015, at 9:01 PM, George Christman < > >>> gchrist...@cardaddy.com > >>> > > > >>> > > wrote: > >>> > > > > >>> > > > I think the choices these days are starting to become very > >>> > overwhelming, > >>> > > I > >>> > > > wish there was a magic bullet eliminating all these choices. I'd > >>> like > >>> > to > >>> > > > pick a new frontend framework, but with all the advise from the > >>> > different > >>> > > > sources, I don't think I know enough anymore to make an educated > >>> > > decision. > >>> > > > > >>> > > > On Sat, Aug 8, 2015 at 5:18 AM, Taha Siddiqi < > >>> tawus.tapes...@gmail.com > >>> > > > >>> > > > wrote: > >>> > > > > >>> > > >> For me it is om(or reactjs). I am currently in the process of > >>> > replacing > >>> > > >> JavaScript in one of my JavaScript intense Tapestry project > with > >>> > > >> om/ClojureScript. > >>> > > >> > >>> > > >> Sent from my iPhone > >>> > > >> > >>> > > >>>> On Aug 8, 2015, at 11:41 AM, Kalle Korhonen < > >>> > > kalle.o.korho...@gmail.com> > >>> > > >>> wrote: > >>> > > >>> > >>> > > >>>> On Fri, Aug 7, 2015 at 3:40 PM, françois facon < > >>> fra.fa...@gmail.com > >>> > > > >>> > > >> wrote: > >>> > > >>>> > >>> > > >>>> About Ember, I looking for an equivalent of > >>> > > >>>> https://docs.angularjs.org/tutorial. > >>> > > >>> > >>> > > >>> I haven't found anything quite as comprehensive for Ember. One > >>> issue > >>> > > with > >>> > > >>> Ember is that many of these tutorials are outdated because its > >>> > changed > >>> > > so > >>> > > >>> fast. The official documentation is often too simplistic when > you > >>> are > >>> > > new > >>> > > >>> to it but trying to build something real. However, this one is > >>> fairly > >>> > > >>> up-to-date and helped me quite a bit when I started out: > >>> > > >>> > >>> http://www.fnaweso.me/ember-js-nested-routing-with-multiple-outlets/ > >>> > > >>> > >>> > > >>> At least for me, working with AngularJS feels more like working > >>> with > >>> > T5 > >>> > > >>> services and its IoC whereas working with Ember feels more like > >>> > writing > >>> > > >> T5 > >>> > > >>> components and I felt right at home with all the Ember > >>> conventions. > >>> > And > >>> > > >>> while it's relatively easy to bootstrap AngularJS to run as > part > >>> of > >>> > T5 > >>> > > >> app, > >>> > > >>> it really doesn't make sense with all the bits and pieces of > >>> Ember > >>> > > >> tooling, > >>> > > >>> the CLI etc (there was an earlier thread about that and I > >>> followed > >>> > > >> Andreas > >>> > > >>> Andreou's advice). Ember is more comprehensive than AngularJS > and > >>> its > >>> > > >>> router is incredibly useful for mapping out a structure for > >>> larger > >>> > > spas. > >>> > > >>> > >>> > > >>> Kalle > >>> > > >>> > >>> > > >>> > >>> > > >>> > >>> > > >>>> 2015-08-07 22:18 GMT+02:00 Kalle Korhonen < > >>> > kalle.o.korho...@gmail.com > >>> > > >: > >>> > > >>>> > >>> > > >>>>> It's pretty easy. Don't build component event requests but > just > >>> > send > >>> > > >>>>> REST(-like) requests that are either processed by plain > >>> Tapestry > >>> > > pages > >>> > > >>>> and > >>> > > >>>>> its EventContext. If you are building a more comprehensive > spa > >>> then > >>> > > >>>>> consider pairing the client with JAX-WS resource backend > (i.e. > >>> > > >>>>> http://www.tynamo.org/tapestry-resteasy+guide/ for T5). > >>> > > Incidentally, > >>> > > >>>> I've > >>> > > >>>>> been working with spas lately as well, and moved from > AngularJS > >>> to > >>> > > >> Ember. > >>> > > >>>>> > >>> > > >>>>> Kalle > >>> > > >>>>> > >>> > > >>>>>> On Fri, Aug 7, 2015 at 12:46 PM, Bob Harner < > >>> bobhar...@gmail.com> > >>> > > >> wrote: > >>> > > >>>>>> > >>> > > >>>>>> Yes a page/event. As long as the URL looks like a tapestry > >>> event > >>> > > >>>> request, > >>> > > >>>>>> you can handle the request in an event handler method within > >>> the > >>> > > >> page's > >>> > > >>>>>> Java class, and return JSON. > >>> > > >>>>>> > >>> > > >>>>>> On Fri, Aug 7, 2015 at 2:40 PM, George Christman < > >>> > > >>>>> gchrist...@cardaddy.com> > >>> > > >>>>>> wrote: > >>> > > >>>>>> > >>> > > >>>>>>> Hi guys, I've been playing around with AngularJS and > backbone > >>> > > >>>> recently > >>> > > >>>>>> and > >>> > > >>>>>>> I'm wondering if it's pretty easy to use with Tapestry? I'm > >>> more > >>> > > >>>>>> concerned > >>> > > >>>>>>> with ajax events etc. I know in grails you can just point > >>> your > >>> > url > >>> > > >>>> to a > >>> > > >>>>>>> controller/action, would we do something similar in > Tapestry, > >>> but > >>> > > >>>>>> obviously > >>> > > >>>>>>> not a controller, but a page / event? > >>> > > >> > >>> > > >> > >>> --------------------------------------------------------------------- > >>> > > >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > >>> > > >> For additional commands, e-mail: users-h...@tapestry.apache.org > >>> > > > > >>> > > > > >>> > > > -- > >>> > > > George Christman > >>> > > > CEO > >>> > > > www.CarDaddy.com > >>> > > > P.O. Box 735 > >>> > > > Johnstown, New York > >>> > > > >>> > > > --------------------------------------------------------------------- > >>> > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > >>> > > For additional commands, e-mail: users-h...@tapestry.apache.org > >>> > > > >>> > > > >>> > > >>> > >>> > >>> > >>> -- > >>> George Christman > >>> CEO > >>> www.CarDaddy.com > >>> P.O. Box 735 > >>> Johnstown, New York > >>> > >>> > > > > -- > > Thiago H. de Paula Figueiredo > > Tapestry, Java and Hibernate consultant and developer > > http://machina.com.br > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > > For additional commands, e-mail: users-h...@tapestry.apache.org > > > > > -- Best Regards Harry Zhou