knockout v3.3.0 Release Notes

Release Date: 2015-02-18 // about 9 years ago
  • โœจ Enhancements

    ๐Ÿ”ง #1504 - Component configuration can specify a synchronous option to render already loaded components synchronously.
    #1463 - Component child elements are provided to the createViewModel method, component child elements are exposed on the binding context as $componentTemplateNodes, and the template binding can accept an array of DOM nodes directly through the nodes option.
    #1449 - Binding context now contains a $component property that references the nearest component view model (allows for easily binding to the root of the current component).
    #1596 - Create a writable computed within a custom element component when an expression evaluates to an observable (less need to use .$raw property).
    #1576 - computed observables (pure or deferred) notify an awake event with the current value when awakening, pure computeds notify an asleep event with an undefined value when going to sleep, and the getSubscriptionsCount method on an observable can accept an event name argument to return only the count of subscriptions for that event.
    #1543 - Sleeping pure computed observables now cache their value.
    #1635 - Export ko.utils.setTextContent
    #1427 - Export ko.dependencyDetection.ignore as ko.ignoreDependencies

    ๐Ÿ›  Fixes

    ๐Ÿšš #1321 - Ensure that template nodes are created and moved within the correct document to fix cross-window issues in IE.
    ๐Ÿ“œ #1434 - Binding parser skips all colons between the name and value. Support returning malformed bindings (non key-value pairs).
    #1468 - css binding was not clearing a previously added dynamic class when the value bound against changes to null.
    #1507 - Memory leak fix for foreach/template binding
    #1513 - Fix error in fixUpContinuousNodeArray when using jquery.tmpl
    โšก๏ธ #1515 - Update dependentObservable._latestValue when a pureComputed wakes up (affects debug build only)
    ๐Ÿ’… #1526 - Component's require option should not try to do an AMD-style require in a CommonJS scenario.
    #1556 - Check that the value passed to optionsAfterRender is a function before calling
    #1597 - CSS binding now works properly with SVG elements
    #1606 - Don't bind contents of <textarea> elements
    โšก๏ธ #1623 - When using valueAllowUnset: true, null selection should be maintained when option items are updated.
    ๐Ÿ‘ #1634 - Better clean-up of arrayChange subscriptions