Change a tag name or class name (which I think is far more common than attribute names) would then break the relationship.
This could be used with backbone or any other lib that doesn't have data binds.
Since it would make no apparent sense to use both KO and Rivet, the original question seems germane.
Is the answer then "because Rivets does less"?
https://github.com/mikeric/rivets/blob/master/src/rivets.cof...
... although one thing to note is that it looks like it doesn't currently support IE (< 9).
To summarize; Not only do I think this is excessive beyond MVC, but it is also jumping the gun by a decade minimum. I don't need smarty templates, I don't need overloaded HTML attributes and I don't need this. Good day to you.
I'm really curious, is there a better way?
I don't want to wrap my models with ugly frameworks, all I need is a way to fire a callback when my model changes.
There is a lot of talk on various MVC frameworks, but lets not forget that manual syncing of views and models has some advantages, e.g. you can improve performance by combining many subsequent DOM operations or by temporarily detaching the parent from DOM tree.
https://adamsanderson.github.com/ivy/
Lots of people are looking for better ways to deal with data in their views :)
Also, when a data value changes do you re-render the whole thing, of just the affected node?
It just updates the specified part (data-value updates the value, data-html updates the innerHTML etc)
Rendering the whole view again can be expensive. As well as this the user might have interacted with the page in which would probably make the user loose his changes.