I'm delighted to announce that I've finished my MVVM framework. It's still in beta version however it'll release soon. You can download at
HTMLjs.
I'm sorry for announcing publishment here because I haven't created a website for the framework. You can contribute to the framework now by contacting me.
This framework is similar to Angular data-binding but 6-7 times faster, it's even faster than browser's rendering processing because it only uses pure javascript code; no thing such as template and strange attibutes like ng-model or data-bind. Hopefully, Angular team will take a look a my implementation to see how fast it is and use my appoach to make Angular more beautiful. See meal reservation example in examples folder. You can take a look at the API, it's very beautiful and comprehensive for those familiar with Knockout js.
Note that I use HTML.data instead of ko.observable and ko.observableArray and also ko.computed. And you must use each function within a container (e.g a div tag).
Code sample
var vm = new ReservationsViewModel();
HTML.render(document.body)
.h2('Your seat reservations ').span(vm.seatNum).$().$()
.br()
.button('Add seat').click(vm.addSeat).refreshChange(vm).$()
.br()
.table()
.thead().tr().th('Passenger name').$().th('Meal').$().th('Surcharge').$().$()
.tbody()
.each(vm.seats, function(seat){
HTML.render(this)
.tr()
.td()
.dropdown(vm.availableMeals, seat.meal, 'mealName').refreshChange(seat, vm).$()
.$()
.td().span(seat.formattedPrice).$().$()
.td().a('Remove').click(vm.removeSeat, seat).click(vm.f5).$().$()
.$()
})
.$()
.$()