2.2.1 ( Mar 24 2015 )
- List.prototype.__set should not assume to create an array for indices out of bounds
- Prevents listening to events that happen while reading the compute
- v2.2.0 - The included
global.define
breaks UMD defs in other scripts - cleans up can.Compute.read and adds template-obserbable promises
- Update components.md
- Adding viewModel to Components control instance
- Update the binding count correctly after calling removeEvent
- #1521 define map properties in the same order they're defined
- Problem with defines called out of order
2.2.0 ( Mar 16 2015 )
- Renaming and adding can.Component viewModel property.
- Set the context correctly when an async compute has a length of 1
- Typo (use of @params instead of @param) in can.Model's documentation
- Added a note and some sample code illustrating relative can.view.Scope.attr lookups.
- Adds can.Compute, and "compute" type and setter / getter paring for define pugin
- can-value doesn't two way bind with a key value that has 0 and one values to a checkbox
- spaces around a key with
can-value
do not two way bind - can-EVENT can not call intermediate functions before calling the final function
- can.fixture.store with objects does not work for .create
- can.Model resource is not creating "destroy" static method
- Don't change route if the only change would be prepending "!"
- Make RequireJS work with can.import
- Complete the Sort plugin
- Can attr set checkboxes
- add/remove events always give you back arrays
- Moved jquery out of travis.yml file and into devDependencies #1418
- can.route.setState doesn't deep clean the route
- travis.yml before_script
- Observable can/map/backup plugin
- removing bound scope properties on destroy
- CanJS can-value does not work for multi-select when options are rendered using Map
- Insert can.compute into can.Map
- Dev warning: custom tag is already defined
- {{#is}} and {{#eq}} helper
- can.List.prototype.sortIndexes is defined but not referenced
- A splice where can.List ends up exactly the same should not produce any events.
- #each doesn't work with null values that change to a can.List
- Memory leak in CanJS template/model
- can-autorender
- can.stache and can.mustache templates don't resolve partial names against the scope.
- can.stache will import components it depends on
- can.import
- getOwnPropertyDescriptor causes fatal error in IE8
- can/map/define default behaviors with "*"
- updating module names for builder
- booleanAttr for components
- Models with no id (undefined or null) are placed in model store
- can/map/define doesn't work more than one level deep.
- rename can.Component scope to context?
- can.List.prototype.sort is not working
- can-EVENT arguments
- {{prop}}CHECKED{{/prop}} doesn't work if someone manually changes input checked and then changes value elsewhere (visible in TODOMVC)
- can-event doesn't pass extra arguments
- Default empty route event fires twice on page load
- can-event trows an error when inside #if block
- can.route - Allow changing the route (and URL) without saving to browser history
- Block level elements should be able to render inside anchor tags
- can.fixture has no way to allow AJAX calls to circumvent it, if necessary
- Sorting a List doesn't update in a template correctly
- can-EVENT removed in live bindings doesn't unbind
- Lexical semantics for can.Component
- Constructor names visible in debugger
- Fix
can.List
event docs, as well as an event ambiguity - new fixture store API is not documented
- Improvement: can.list.pushAll and can.list.unshiftAll shortcuts
- Replacing can.Map.List and can.List.Map
- Ensure can-value bound input stay in sync with compute
- can-value becomes out of sync when a compute rejects the new value
- input with can-value keeps wrong value prevented with setter plugin
- can.list.sort triggers event before sorting but none after
- Improve can.scope and $.fn.scope code and add assignment support
- Pass local helpers to sub templates.
- can.batch.start/stop causes can.List with length>1 to render last element twice
- Advanced linking / setting of attribute values and computes
- Live binding does not maintain the cursor position.
2.1.4 ( Nov 21 2014 )
- change: Make can.Construct work with getter / setters (and super plugin)
- change: Update compute.read to also return constructor functions
- change: property for which no validations are defined throws an exception
- change: Reading from undefined values in scope.
- change: Fixed function overwrite
- change: Using attrData.scope.compute as a setter throws an error if the getter hasn't been called
- change: Setting computes created with computeData will throw if set first
- change: Fix IE7 character access
- change: $.fn.scope undefined when using CommonJS
- change: Cannot read properties of can.Map inside a property's value method
- change: Removed madeMap and getMapFromObject from LazyMap since it's unused
- change: Dispatch correct arguments with can.List:splice if inserting and removing the same elements.
- change: Inconsistent results when extending parsed can.Models
- change: scope objects with constructor function properties are treated as methods
- change: Mustache warning on helpers
- change: Extending a Model overwrites parseModels()
- change: Unused variable in can.Model
- change: Fixed Mustache getHelper() so that it doesn't need second argument
- change: can.route.map docs
- change: can.camelize and can.hyphenate not documented
- change: Issue: can.view(function, deferred, callback) does not work
- change: can.stache dosent render custom tags with Colon ":"
- change: Documenting what new Model.List() does with no args passed
- change: Bug: can.List.splice(-1) causes JS exception inside binding framework
- change: can.Map code block cleanup and fix failure to render.
- change: can.view.preload breaks can.view.attr
- change: Fix rendering of <col> inside <table> in templates.
2.1.3 ( Aug 25 2014 )
- change: IE 8+10 fixes
- change: makes sure can.compute.read can read a final can.route value
- change: Allows maps passed to can.Map's constructor
- change: Makes can.route.current is observable
- change: component does not update scope on id, class, and data-view-id attribute changes
- change: Prevent 'leaking reads' on single bind computes
- change: can.Map constructor fails if passed another Map
- change: Incomplete documentation for can.List.prototype.filter
- change: can.Map method not become computable automatically
- change: can.route.current is not live-bindable
- change: setupSingleBindComputeHandlers leak temporary observables.
- change: can.compute.read should not call can.route
- change: Fix for #1132
- change: Fix for #1143
- change: Fixes compute.read with a Map wrapped in a compute
- change: Error when using a helper with 2 string arguments
- change: Simplifying and clarifying lazymap docs
- change: Documenting how to access Map properties containing a dot
- change: Fix the tabbing/spacing in the validation markdown files, and re-path th...
- change: Fix @typedef name to be dot-separated.
- change: Parse Error when a stache template contains SVG content
- change: test and fix #1079
- change: Fixes #1078 - add offset support to @index
- change: Fixes #1074 - Only call findAll once if argument is a deferred
- change: Document accessing attributes with dot in the name
- change: can.Construct passes original arguments to setup and fixes can.Model's setup accordingly
- change: Corrected pushstate tests and update can.test.route
- change: can.stache read function bug
- change: Model.resource is not working with inherited classes
- change: Id and class attributes are not ignored in the route URL
- change: @index is not using offset param
- change: new Foo.List(Foo.findAll()) calls Foo.findAll twice
- change: Store docs
- change: Multiple issues with Model
- change: can.LazyMap docs do not read clearly
2.1.2 ( Jun 16 2014 )
- change: Adds event target back for Map events
- change: Evaluate and cache text sections properly
- change: can.Map events Object missing target property
- change: Fix can.debounce and can.throttle context
- change: can.stache is returning incorrect values for DOM attributes
- change: Fixed incorrect scope for can/event's delegate and undelegate
- change: Warnings for map/define
- change: 1050 component tagnames
- change: Regression in component naming
- change: Model destroyed bug
- change: Remove NodeLists from Stache
- change: #1019 Unless does not live bind
- change: Making routes not greedily consume slashes by default
- change: Map define warn
- change: calling reverse on a model list breaks its "destroyed" bindings
- change: can/event delegate/undelegate aren't using the correct scope
- change: Codeblocks styling in COMPUTE-ATTR
- change: nested component within an #if is not live bound
- change: {{#unless}} does not live bind
- change: #716 can.Model now warns the developer when no static properties are specified
- change: fixes map unbind bug
- change: 404 on can.view.Scope().readOptions docs
- change: Fix rendering of <col> inside <table> in templates.
- change: fix documentation for can.batch.stop
- change: can.stache performance
- change: Bug with conditionally nested components using stache
- change: can.batch documentation is wrong
- change: can.debounce keeps the context after being called the first time
- change: Dev warning when can.Model is extended without static properties.
2.1.1 ( May 21 2014 )
- change: 404 on define example
- change: Fixing define demo
- change: Fixing up component and scope docs
- change: Helpers are now passed into partials. Fixes #791.
- change: can.mustache: {{else}} does not work for {{#unless}} block
- change: Define demo broken in chrome
- change: stache: Custom elements in IE8 contain a colon
- change: Adding ability to mix can.event into can.Controls safely
- change: Mixing in can/event conflicts with can.Control-based classes
- change: added can parameter
- change: adding tests for can.route.map
- change: Scope docs
- change: Component warn
- change: add warning when component attribute is ignored
- change: stache: Using {{else}} inside of an attribute
- change: Misspelling in stache docs - differences from mustache
- change: Upgrading html5shiv to 3.7.2
- change: Stache conditionally nested components
- change: Bug with conditionally nested components using stache
- change: Bug with stache using view/bindings
- change: Wrong context in serialize of can.map.define
- change: Contributing clarification
- change: can.Mustache: using local helpers inside partials
2.1.0 ( May 05 2014 )
- change: fixes IE8
- change: IE fixes
- change: stache issue with steal and single quotes
- change: Update component docs about passing in data via attributes
- change: can.Mustache, can.EJS and can.view.mustache, can.view.ejs are depreicated
- change: Finalize can.Map.define docs
- change: Warning not using extend.
- change: Adding guide for developing plugins
- change: List promise documentation.
- change: Mustache dev logging
- change: can.Map.define
- change: Makes can-value and can-EVENT work with {}
- change: Fixes bugs with custom self-closing tags and empty custom tags.
- change: {} works with can-value and can-click
- change: Stache doesn't register correctly with steal
- change: can.Mustache is converting a can.Model to a can.Map
- change: can-value handling null in addition to undefined for select elements
- change: can.view.live docs
- change: Updates to recipes page
- change: can.stache using ^ inside a tag throws an exception
- change: Fix implementation of ./
- change: can.stache won't render if self-closing content tag is used
- change: Add "./" to mustache to denote selecting a property from current scope
- change: can/event
- change: Subclassed Model.List should inherit from their parent Model.List
- change: Docco inline documentation
- change: Adds computed attributes for can.List instances
- change: Emit events for can.List.prototype.reverse
- change: Fix inverse ^ to be able to use {{else}}
- change: Adding test for #each with child sections
- change: Remove all references from Model.List on model destroy.
- change: Test for Mustache if sections removing all content
- change: Update can.fixture request data with id
- change: Settable can.computes
- change: can.Map.prototype.define
- change: batchNum issues
- change: Change syntax for passing in template objects to Components to use
{}
- change: changing cross-binding comparison from === to ==
- change: can-value when cross-bound with input value using === comparison
- change: Restful behavior not fully implemented in can.fixture.store.findOne
- change: Fix for calling removeAttr with number type (on lists)
- change: Bug in log() method in can.view.Mustache
- change: Added delegate/undelegate fallbacks to bind/unbind and fixed broken Zepto/Dojo delegate implementations
- change: can.route crossbind to can.Map
- change: Inverse ^if doesn't work correctly with an else
- change: #each with nested #if not working as expected
- change: Mustache live binding throws "Cannot read property 'length' of undefined" in can.view.elements.after
- change: can.Model.List should extend an existing List
- change: Dev warning when mustache doesn't find a helper
- change: Recursive mustache template ends with "Maximum call stack size exceeded"
- change: Dev warning when mustache doesn't find a variable
- change: can.Components ignores attributes containing "id"
- change: Adds a can.List promise plugin.
- change: can.List.filter
- change: Content not removed when it should be
- change: defining 'can' missing. setting it as a dependancy
- change: Calling .fn() without arguments should forward scope by default
- change: Path accessor to prevent walking up the scope
- change: Observe attributes for #637
- change: Attributes event API
- change: can.view.tag and can.view.attr
- change: 2.1 API Changes
- change: can.view returns a renderer function that returns a string
- change: Added parseModels and parseModel to fix duplicate instances being created after create an update.
- change: Added test to issue #560
- change: can.Model#save: values for attributes not found in response are replaced with their defaults
- change: Select with multiple-selection for can.view.bindings (i.e. two-way binding via can-value)
- change: Update on can.Model's nested object throws error on recursive mustache template
- change: can.Model: one URL property for REST resource
- change: Adding wildcards to attributes plugin
- change: Inconsistency when passing functions (e.g. descendants of can.Construct) to helpers.
- change: Mustache - TypeError: Cannot read property 'childNodes' of null
- change: Make can.extend's deep copy clone CanJS classes
2.0.7 ( Mar 26 2014 )
- change: Configuration for AMD development build
- change: 2.0.6 dev errors
- change: AMD dev build
2.0.6 ( Mar 14 2014 )
- change: Allow type inference for fixture parameters.
- change: Updating sourceURL syntax to use # instead of @
- change: Changing typeof check to a check for apply (#681)
- change: Nested component tags of same type throws an error
- change: #773: Fixing date compare logic in can.Object.same.
- change: Enable removeAttr on Map keys with dot
- change: can.Object.same: compare logic is incorrect when it comes to dates
- change: scanner.js error: Using //@ to indicate sourceURL pragmas is deprecated
- change: Bug in sample code on http://canjs.com/ homepage
- change: #713 cleanup can.Control, fixup contributing guide
- change: can.computes that return nulls can be used with #each
- change: can.fixture no longer says id 1 and id "1" are the same
- change: Fixes
updated
callback to can.compute's on/off to simply need to be called. - change: compute signature not working
- change: 2.0.5 idOrUrl require.toUrl() change documented
- change: can.view Breaking backward compatibility in v2.0.5 amd
- change: confusing example for can.Control template data passing
- change: Canjs not working in default android browser.
- change: sourceURL comment in Scanner.prototype.scan() cause error on IE8
2.0.5 ( Feb 04 2014 )
- change: fixes looking up @ and sets links to docco
- change: Fixing truncation of special attribute (src and style) values containing '='
- change: Fixes IE in all browsers for all libraries
- change: Fixes can.Map::compute to handle deeply nested properties
- change: Live binding attribute in a truthy section does not work
- change: Pluginify tests
- change: Prevents attributes like can-click and can-value from being converted to scope properties
- change: JSHints CanJS
- change: Live binding attributes with no '=' does not work
- change: Fixed the pushstate #652 test to ensure that it should pass in all libraries and phantomjs
- change: Ignore attributes fix
- change: Changing can.Control.route to match pushstate (#612)
- change: Rewrote the pushstate #652 test for stability purposes
- change: Fix for incorrect ignore attributes pattern
- change: Development mode builds
- change: Migrated the fix for can-value with radio buttons from bindings to elements
- change: Fixing the test for pushstate #652
- change: Moving can-value test and fixing IE7 radio button bug
- change: #686 - Fix document.contains issue on Android
- change: Android - document.contains
- change: can.List.Map documentation
- change: Suggested fix to broken attr behaviour
- change: Fixes a memory leak with live binding.
- change: Unexpected behaviour while using a Map
- change: Live-Binding memory leak
- change: Unescaped attributes
- change: scope as Map constructors do not respect default "@" values
- change: no doubled history states
- change: Fixing variable format so it doesn't break Steal build
- change: routed links must descend from pushstate root
- change: util/zepto doesn't use $.fn.remove()
- change: template files relative to requirejs baseUrl
- change: exclude actual root from deparam
- change: Partials within #each not working.
- change: Undefined compute live bind fixes
- change: 2.0.4 Live @index still not working correctly
- change: Broken live-binding with can.compute if compute is updated with a can.Construct
- change: can.Mustache / can.view.Scope: Can't access static properties from an object's constructor.
- change: #each on undefined attributes not working anymore in 2.0.4
- change: can-value in checkboxes in IE7
- change: can.computes with can.Map.prototype.attr() do not set up bindings
- change: Changing can.Control.route selectors to match pushstate.js
2.0.4 ( Dec 23 2013 )
- change: 2.0.4 test fixes
- change: Makes live safeStrings work
- change: Working @index in mustache templates
- change: Fixes nested components and
<content>
tags. - change: Fixes a problem with double inserted events
- change: benchmark.js and minor performance improvements
- change: Node lists rewrite
- change: temporary fixed mustache index calculation with simple can.List when remove first item of list
- change: Serialization
- change: can.Component ATTR value is undefined when passing a function as a scope
- change: restore will not remove properties that were added since the last backup
- change: can.Mustache.safestring does not work with computed properties
- change: Items pushed on lists don't get removed from the DOM in some cases
- change: Functions globally defined when it shouldn't be
- change: undefined list passed to {{#each}}
- change: Added test for inserted event bug (live binding block)
- change: Support Offline Testing
- change: When using certain html-comments, can.view.Scanner does not recognize them correctly
- change: teardownMap slows perfomance drastically
- change: test for component content extension stack overflow bug
- change: Split element classnames fails with {{#if}}
- change: fixed an error that is caused by the timeout firing after the element has been removed from the DOM
- change: Please add trailing slash support for can.route.pushstate
- change: Overwrite can.Map.List.prototype.serialize to avoid infinite loops
- change: Iterating over component data not as expected
- change: can-value shows "undefined" if bound to undefined value
- change: Maximum Call Stack Exceeded When Destroying a nested model
- change: Individual test pages should run in CI as well
2.0.3 ( Nov 26 2013 )
- change: fixes #577
- change: Text live binding remains bound
- change: fixes for #575 - non-component custom tags
- change: Non component custom tag problems.
- change: fixes for jQuery's inserted event and some quick inserted helpers
- change: Component inserted event doesn't work with jQuery 1.10
- change: fixes #568 and makes nulls render to empty string
- change: Mustache loops do not print 0.
- change: Observe builder update
- change: Providing a can.Map constructor function to a component's scope does not work.
- change: 552 index calculation
- change: @index is not calculated correctly when there are identical elements in the list
- change: Inside the eventHandler this.scope is not set (as it's called on the scope itself)
- change: Bower support, multiple jQuery versions
2.0.2 ( Nov 14 2013 )
- change: cloning setter comptues
- change: Event listeners leak in 2.0.1
- change: can.VERSION for 2.0.1 says @EDGE rather than 2.0.1
- change: 'key' property breaks mustache helpers
- change: component does not respect can.compute passed via attributes
- change: Wrapping can.compute in can.Map breaks live-binding
2.0.1 ( Nov 12 2013 )
- change: Fixes #538 helpers aren't called is data passed to the template happens ...
- change: Update included plugins and release tasks
- change: mustache: 'with' string is interpreted as with helper keyword
- change: can.Component two way binding issues
- change: New lines are not handled properly in special attributes
- change: can.Control: {document} events are not working
- change: "{document} body click" breaks in latest
- change: pushstate() and preventDefault() were not working on default route becau...
- change: Make $#domManip patch jq2.0-compatible
- change: broken livebinding after replace can.Map property or remove property
- change: fixes a problem with each not working if the whole list is replaced
- change: can.Map stack exceeded on circular data structures
- change: Fixes #512 #513, sees the glorious return of can.camelize and his trusty sidekick, can.hyphenate
- change: List.join is not compute-able
- change: Fix to multiple tags not necessarily having the right context. Close #515
- change: avoids jQuery's event system when binding on observes which fixes #280
- change: Implement can.Mustache.safeString
- change: can.Component helpers context issue
- change: can.camelize
- change: can.Component template attributes name case
- change: Makes attribute arguments passed to a component two way binding
- change: Fix
Model.List.prototype.findAll()
in IE8. - change: Return a new can.compute every time (new can.view.Scope()).compute() is called
- change: Mustache and EJS issues with attributes and truthy blocks
- change: Handlebars {{#if}} losing scope of var
- change: can.Model.List() updates its length after destoy() of one of its models only if it has bindings
- change: can.Mustache doesn't support SafeString
- change: can.Mustache: inconsistent behavior when updating nested attributes of an Observe
- change: Support Handlebars @key and @index directives
- change: Accessing a parent array property from within mustche
- change: can.Observe binds for nested object. First time event trigger is only on top level object instead of nested one.
2.0.0 ( Nov 07 2013 )
- change: Replacing lists live-binding
- change: Fix destroy params
- change: Special attribute binding
- change: Fix Mustache binding lists in helpers
- change: Certain HTML attributes need special live-binding
- change: Destroy templates and attributes.
- change: Fix some typo's in the documentation.
- change: attr() not working in some cases in IE9
- change: docs update: can.Object dependency for can.fixture
- change: View renderer functions don't work with Deferreds
- change: Issue: can.view.ejs(str) and can.view.ejs(id, str) return different responses
- change: can.Mustache: #if sections are rendered twice when activated from live-binding
- change: can.route.ready should not be called automatically
- change: fixed issue #470 can.route default values are not working
- change: can.route.ready called multiple times
- change: Mustache two way helpers don't work as documented
- change: Can't 2-way bind Array
- change: Bower component does not work with steal
- change: Live Binding Broken with Models with Nested Sub-models
- change: String parameter not working as expected for: jQuery.fn.control / jQuery.fn.controls
- change: error passing can.Observe.List to custom Mustache element helper
- change: Wrong variable name in the Guide.
- change: Model.destroy request params
- change: Fixing can.ajax missing test for error handler with mootools
- change: Fixing error that occurs when an item in an Observe.List contains a comp...
- change: Observe#on
- change: Array is skipped on serialize
- change:
can.Mustache
live-binding oncan.route
attributes - change: create can.Component for custom tags
- change: Feature/route to string
- change: Default can.route.ready to false
- change: Attributes automatic conversion to Map/Model specified type
- change: can.route.pushstate mishandles hash fragments
- change: Needed host check for pushstate.js
- change: Support for rendering document fragments (returned from the renderer function) in the templates
- change: Model.save: handle response data or return data in save callback
- change: AMD Consistency
- change: Extensionless views fail
- change: can.Model.findAll promotes usage of XSS attack vector
- change: Allow context change after element has been rendered
- change: Make it easier to setup 2-way-binding and other interesting behaviors
- change: Accessing attributes in Model destroy
- change: mustache: support for backtrack path
- change: Live-bound dynamic attributes don't get updated properly if they don't exist on initial execution
- change: The can.Model.models arrayName should be configurable like observable's 'id' property
- change: can.observe.delegate fails on compound selectors with wildcards
1.1.8 ( Sep 24 2013 )
- change: can.Observe.List.Sort: fix for case when comparator is not a function
- change: makeFindOne example cache error: http://canjs.com/docs/can.Model.makeFindOne.html
- change: Two return statements in Mustache.getHelper
- change: recommended syntax breaks can.route
- change: Prevent infinite recursion on unbindAndTeardown when Observe's _bindings is undefined and Observe is self-referential
- change: [Catch only exceptions thrown by modelfunc (fix #454 and re #384)](canjs#455)
- change: CanJS Swallowing Errors
1.1.7 ( Jul 23 2013 )
- change: can.Model.model attribute serialization fix
- change: Build cleanup
- change: .model should always serialize Observes
- change: Preloaded recursive views fail to render their recursions
- change: Use .attr() when evaluating errors in validations
- change: can.compute error with can.Observe
- change: Fix the bug where mustache each would fail if called with the empty list
- change: Mustache's each fails with empty list
- change: can.sub should return null if value is undefined or null
- change: can.VERSION shows @EDGE but what about 2 years later?
- change: can.compute-friendly validations
- change: Test AMD builds
- change: fixture based CRUD test fails in phantomjs
- change: can.Model Fails Silently When Server Doesn't Return an Array for findAll
1.1.6 ( May 30 2013 )
- change: Mustache doesn't read computed List.length correctly
- change: Removing the semi-colon splitter in EJS transform, too unreliable #242
- change: EJS transforming wasn't processing semi-colons properly within parentheses #242
- change: Adds support for EJS shared blocks #242
- change: . in helpers
- change: 1.1.6pre - something going wrong with can.computes() in Mustache templates
- change: can.route references delegate but does not include it
- change: Binding to an Observe.compute value is broken
- change: Added validatesNumericalityOf to validations
- change: Include can.Object in CanJS distribution
- change: can.Map makes can.Deferred into an observable
- change: Update sub to not break when str is undefined
- change: List memory leak fix
- change: Integrated incremental live lists
- change: can.view.render update is sometimes
undefined
- change: Model.store and live bind does not handle same object initialized more times
- change: Prevent errors if destroy is called multiple times on a Control instance
- change: Outputting attribute and value containing '=' truncates the value (EJS & Mustache)
- change: can.sub fix remove param. Allow only to remove properties + tests
- change: Can.string getNext function fix
- change: Maximum Call Stack Exceeded When Destroying a nested model
- change: Add VERSION property to CanJS Object
- change: Better handling of null values in Mustache sections.
- change: model override should work for create and update not just findone and findall
- change: Download builder should include build version in output
- change: Don't treat links to "#" as "/"
- change: Run all tests also on pluginified files
- change: Observable list's length attribute does not update with live binding using dot separated accessors
- change: Twitter Bower component of CanJS
- change: ejs files loose variables after $.each loop
1.1.5 ( Mar 28 2013 )
- change: Added Mustache.resolve to evaluate truthyness in a common way #333
- change: Fixed incorrect passing of context stacks with partials in Mustache #288
- change: Mustache {{#if}} does not correctly evaluate boolean value
- change: deparam: parse params with remaining ampersand
- change: Null objects within observes weren't working properly with Mustache sections #307
- change: Mustache: Pass raw array data as the context instead of trying to resolve it #281
- change: Allow to pass an array index to removeAttr in Observe and Observe.List
- change: fixing no arg helpers
- change: Mustache interpolation issues using Observes inside of an attribute tag
- change: isObject is undefined
- change: Allow dots in Observe keys
- change: data-view-id being rendered in tag closing
- change: Execute startBatch callbacks
- change: HTML comments with either an element callback (EJS) or a helper (Mustache) rendered incorrectly
- change: Prevent leak from computes that have no bindings.
- change: Treat "--" as delimiter of empty element
- change: Fixing can.ajax with mootools
- change: CanJS tries to parse JSON-map which contains a dot in the key
- change: can.compute evaluations for the default Mustache handlers
- change: can.Mustache: Array of objects passed as context to partials, breaks data helper and rendering.
- change: adding greedy space to model url splitter
- change: Fix for numeric inputs not living binding
- change: Empty strings not handled properly
- change: can.Control event delegation problem
- change: fixing computes from converting type
- change: can.view with Deferreds doesn't pass failures
- change: HTML comments trip EJS rendering
- change: can.Map.prototype.each overrides {{#each}} Mustache helper.
- change: Any model with a "." in the key name will cause observe.js _set() to throw and error
- change: Item.List splice method does not convert inserted elements to Item type
- change: Mustache: DOM exception when applying certain block patterns
- change: Mustache: Interpolated values when iterating through an Observe.List fail if not surrounded by a DOM node
1.1.4 ( February 5, 2013 )
- fix: Haschange binding and route ready for all libraries
- fix: Get converters and .attr working the right way with nested objects
- fix: CanJS/ejs table+tbody rendering of a list gives nested tbody items
- fix: Mustache: Inconsistent treatment of function attributes
- fix: EJS renders "@@!!@@" instead of Model data when a Deferred is passed into can.view that takes a long time to resolve
- fix: Mustache: registered helpers do not create the context stack correctly
- fix: Mustache: only the current context is passed to partials, instead of the full stack
- fix: IE8 error when setting up observe list
- fix: Resetting a live-bound
<textarea>
changes its value to__!!__
- fix: hashchange binding still broken in mootools
- fix: can.Mustache - with context lost in nested sections
- fix: Enabled passing in helpers and partials to Mustache views, (1)
- fix: Make the resolved data available when using can.view
- fix: .attr method doesn't merge nested objects
- fix: Live binding on observe.lists nested in an observe doesn't work
- fix: Attributes/Converters Issue
- fix: Observe.List push/unshift doesn't fire when sort comparator is set
- fix: Observe.List sort doesn't use custom method passed
- fix: test&fix: null values crashing validations
- fix: EJS rendering null value
- fix: can.Map sort plugin doesn't trigger add events
- fix: Observe.List sort plugin erroring on item removal
- fix: Live binding on observe.lists nested in an observe doesn't work
- fix: Observe.List sort doesn't use custom method passed
- add: removeAttr can.Model attribute
- add: Calling destroy on non persisted model
- add: jQuery 1.9.x support
- add: Mustache Helpers that accept computes and return an element should work
1.1.3 ( December 11, 2012 )
- fix: Empty model displays !! as input values
- fix: Rendering models in tables produces different results than an equivalent observe
- fix:
data
Mustache helper doesn't parse attribute properly - fix: Partial Mustache views assume the right parent tag for live-binding
- fix: Mustache partials don't parse properly
- fix: can.Control will fail to find $.event.special in a $.noConflict(true) scenario
- fix: Nameless view renderers should return document fragment
- fix: compute only updates once when a list's contents are replaced
- add: Updated jQuery hashchange plugin
- add: Generate computes from an observe property
- add: Add can.List.prototype.replace
- add: [Return resolved data models in view callback](https://github.com/bitovi/canjs/issues/1log
1.1.2 ( November 28, 2012 )
- fix: Solve issue when stealing mustache templates -
can/view/mustache
returnscan
object now - fix: Controls shouldn't bind to templated events that contain undefined values
- fix: Resetting a form changes input values to !!
- fix: Further AMD build improvements
- fix: Strange conversion of nested arrays to Observe.List
1.1.1 ( November 19, 2012 )
- fix: @@!!@@ Appears on Page With EJS and Table in non-IE Browsers
- fix: can.deparam leaks to global scope
- fix: nested attr() call on a model with List attributes blows away existing List
- add: canjs#162
- Improved AMD support, see #155
1.1.0 ( November 13, 2012 )
-
add: AMD module support for each dependency (#46)
-
can.util
- Updated jQuery to 1.8.2
- Updated Zepto to 1.0rc1
- Updated YUI to 3.7.3
-
can.Mustache
- Added Mustache/Handlebars support with Live Binding
-
can.view
-
can.EJS
-
can.route
-
can.Control
-
can.Map
- add: List binding on .length of an object
- fix: validation error that incorrectly labels an attribute with a value of 0 as empty
- add: you can now pluralise event names to listen to matching events of that type (rather than firing a single event)
- add: compound sets now behave correctly
- fix: can.Map.delegate sets wrong event.currentTarget
- add: ability to assign object as attribute type in can.Map
-
can.Model
- fix: can.Model with attributes that are models gets corrupted when you call attr()
- add: missing dependency to can/model
- Moved can/model/elements to can/map/elements and renamed
models
toinstances
- fix: can.Model.List doesn't fire the change event on the expando properties
1.0.7 (June 25nd 2012)
-
can.compute
- Fixed a global collision with
can.Control
.
- Fixed a global collision with
-
Removed globals
- Thanks Daniel Franz!
1.0.6 (June 22nd 2012)
-
can.compute
- Added a computed value type object that can be used to represent several observe properties or a single static value.
-
can.ejs
- Fixed problem with trailing text not being added to template.
1.0.5 (June 2nd 2012)
-
can.model
- Added ability to overwrite model crud operations by defining a
make
prefixed static function, such asmakeFindAll
- Added ability to overwrite model crud operations by defining a
-
can.EJS
- Fixed problem with nested block statements.
-
can.each
- Added optional third argument that defines the context for the iterator function.
-
can/util/function
- Added
can.defer
method as an alias forsetTimeout(function(){}, 0)
.
- Added
-
can.view
- Fixed
toId
so it will work with both older and newersteal
versions.
- Fixed
1.0.4 (May 22nd 2012)
- Fixed plugin build process
1.0.2 (May 20th 2012)
- Fixed breaking namespace issue.
1.0.1 (May 18th 2012)
-
can.util
- fix:
can.each
now makes sure the collection being iterated is notundefined
- fix:
-
can.control
- add: Redirect to another controller method using a string
-
can.model
- fix: Model instances in model store will be updated when
findAll
orfindOne
retrieves updated instances fixes - fix: Static methods such as
findOne
andfindAll
can now be rejected. Thanks roelmonnens!
- fix: Model instances in model store will be updated when
-
can.route
- add: Deliminating tokens now configurable
- fix: Current route wins if all else equal
1.0 (May 14st 2012)
-
Registers itself as an AMD module if
define
is in thewindow
-
can.fixture
- add: a fixture plugin
-
can.util
-
can.route
1.0 Beta 2 (April 21st 2012)
-
can.util
- change: reverse argument order of can.each
- change/fix: buildFragment returns non cached frag
- fix: zepto's isEmptyObject was broke
-
can.observe
-
can.model
-
can.route
- fix: a host of bugs in libaries other than jQuery because can.route was not properly tested in other libraries.
- fix: can.param fixed in dojo,
1.0 Beta 1 (April 1st 2012)
Released!