I am developing single page application which can be used on all the devices Phone, tablets (using apache Cordova) and desktop. Initially I started with Angular2 since it has component based development model (for code reusability), two way databindng, separation of concerns, dependency injection and efficient DOM manipulation. After developing it for some time, I was frustrated mainly because it has a lot of learning curve, it requires lot of tooling support for development (nodejs, node lite development server, polyfills, systemjs, observables, typescripts etc.), obscure error messages, lack of adequate documentation (since it is in beta). Also one has to write lot of code to accomplish simple task such as setting the focus in the textbox.
Finally I decided to go with Jquery 2.0. Since Jquery is lacking templating support and two way data binding, I am using JSRender and JSViews. JSRender and JSView will help to reduce the amount of code that I need to write. I believe I certainly can write clean code if I separate logic for services and repositories into separate files even using Jquery. So question is
- What benefits I am going to lose if I use combination of JQuery, JSRender and JSView over Angular2. I know dependency injection feature is one of them.
- Any other popular library with minimum learning curve for templating and two way data binding which can be used with Jquery?