5 ms·
Very nice. I'm disappointed to see JavaScript back in attributes though. Can the bindings be defined programmatically?
by scotth 16y ago
Very nice.
I'm disappointed to see JavaScript back in attributes though. Can the bindings be defined programmatically?
- jashkenas 16y agoIt's also calling eval() on every single data-bind attribute you have: http://github.com/SteveSanderson/knockout/blob/master/src/binding/bindingAttributeSyntax.js#L7-14 http://github.com/SteveSanderson/knockout/blob/master/src/bi... Perhaps Steve can comment on how well this performs in real-world views with thousands of DOM elements...
- stevensanderson 16y agoThe evaling is a robust way to parse the JSON-like binding syntax at the full speed of the browser's native code. Much faster than implementing the parsing in JavaScript.
- jashkenas 16y agoJust to be clear -- the "JSON-like binding syntax" includes arbitrary JavaScript code, right? That's how stuff like this works... <button data-bind="click: function() { allItems.sort() }, enable: allItems().length > 1"> Sort </button>
- stevensanderson 16y agoIt can do in cases where you find that more convenient. Whenever you prefer to move logic into your view model and just reference it, you can do so. It's intended to be flexible.
- stevensanderson 16y agoThink of the bindings as data, not as procedural code. It's so much more convenient to do it this way (avoiding having to figure out where each bit of behaviour comes from), especially when you're generating UI from within templates.
- ctb9 16y agoI'm only 4 hours into knockout.js but this seems to be the key benefit. I've been massacring functions that manipulate multiple elements and instead am directly tying the behaviors to the underlying data. My future self is very pleased with me.