CanJS’ core supports Dojo, jQuery, Zepto, YUI and Mootools.
By doing so, it opens itself to a broad group of developers and use cases thanks to a previously unexplored possibility of combining technologies together, instead of focusing just on one single tool.
The framework was built on a small core and an MV* structure, supporting two-way data binding, custom tags, responsive widgets, and its very own template engine.
CanJS works with client-side (browsers) and server-side (Node.js) AMD environments.
CanJS was developed to be part of the JavaScript framework - JavaScriptMVC.
What is new in this release:
- 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
- can.route.setState doesn't deep clean the route
- travis.yml before_script
- Observable can/map/backup plugin
What is new in version 2.3.1:
- 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
- can.route.setState doesn't deep clean the route
- travis.yml before_script
- Observable can/map/backup plugin
What is new in version 2.2.9:
- 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
- can.route.setState doesn't deep clean the route
- travis.yml before_script
- Observable can/map/backup plugin
What is new in version 2.2.6:
- 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
- can.route.setState doesn't deep clean the route
- travis.yml before_script
- Observable can/map/backup plugin
What is new in version 2.2.5:
- 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
- can.route.setState doesn't deep clean the route
- travis.yml before_script
- Observable can/map/backup plugin
What is new in version 2.1.4 / 2.2.0-pre.0:
- Make can.Construct work with getter / setters (and super plugin)
- Update compute.read to also return constructor functions
- property for which no validations are defined throws an exception
- Reading from undefined values in scope.
- Fixed function overwrite
- Using attrData.scope.compute as a setter throws an error if the getter hasn't been called
- Setting computes created with computeData will throw if set first
- Fix IE7 character access
- $.fn.scope undefined when using CommonJS
- Cannot read properties of can.Map inside a property's value method
- Removed madeMap and getMapFromObject from LazyMap since it's unused
- Dispatch correct arguments with can.List:splice if inserting and removing the same elements.
- Inconsistent results when extending parsed can.Models
- scope objects with constructor function properties are treated as methods
- Mustache warning on helpers
- Extending a Model overwrites parseModels()
- Unused variable in can.Model
What is new in version 2.1.3:
- Changes:
- IE 8+10 fixes
- Makes sure can.compute.read can read a final can.route value
- Allows maps passed to can.Map's constructor
- Makes can.route.current is observable
- Component does not update scope on id, class, and data-view-id attribute changes
- Prevent 'leaking reads' on single bind computes
- can.Map constructor fails if passed another Map
- Incomplete documentation for can.List.prototype.filter
- can.Map method not become computable automatically
- can.route.current is not live-bindable
- setupSingleBindComputeHandlers leak temporary observables.
- can.compute.read should not call can.route
- Fixes compute.read with a Map wrapped in a compute
- When using a helper with 2 string arguments
- Simplifying and clarifying lazymap docs
- Documenting how to access Map properties containing a dot
What is new in version 2.1.0:
- Changes:
- Stache issue with steal and single quotes
- Update component docs about passing in data via attributes
- can.Mustache, can.EJS and can.view.mustache, can.view.ejs are depreciated
- Finalize can.Map.define docs
- Warning not using extend.
- Adding guide for developing plugins
- List promise documentation.
- Mustache dev logging
- can.Map.define
- Makes can-value and can-EVENT work with {}
- Fixes bugs with custom self-closing tags and empty custom tags.
- {} works with can-value and can-click
- Stache doesn't register correctly with steal
- can.Mustache is converting a can.Model to a can.Map
- can-value handling null in addition to undefined for select elements
- can.view.live docs
- Updates to recipes page
What is new in version 2.0.7:
- Changes:
- Configuration for AMD development build
- AMD dev build
What is new in version 2.0.4:
- Functions globally defined when it shouldn't be
- Undefined list passed to {{#each}}
- Added test for inserted event bug (live binding block)
- Support Offline Testing
- When using certain html-comments, can.view.Scanner does not recognize them correctly
What is new in version 2.0.3:
- Mustache loops do not print 0.
- Observe builder update
- Providing a can.Map constructor function to a component's scope does not work.
- @index is not calculated correctly when there are identical elements in the list
- Inside the eventHandler this.scope is not set (as it's called on the scope itself)
- Bower support, multiple jQuery versions
What is new in version 2.0.0:
- Changed:
- Replacing lists live-binding
- Destroy params
- Special attribute binding
- Mustache binding lists in helpers
- Certain HTML attributes need special live-binding
- Destroy templates and attributes.
- Some typo's in the documentation.
- attr() not working in some cases in IE9
- can.Object dependency for can.fixture
- View renderer functions don't work with Deferreds
- can.view.ejs(str) and can.view.ejs(id, str) return different responses
- can.Mustache: #if sections are rendered twice when activated from live-binding
- can.route.ready should not be called automatically
- can.route default values are not working
What is new in version 1.1.8:
- can.Observe.List.Sort: fix for case when comparator is not a function
- makeFindOne example cache error: http://canjs.com/docs/can.Model.makeFindOne.html
- Two return statements in Mustache.getHelper
- Recommended syntax breaks can.route
- Prevent infinite recursion on unbindAndTeardown when Observe's _bindings is undefined and Observe is self-referential
What is new in version 1.1.4:
- Added:
- removeAttr can.Model attribute.
- Calling destroy on non persisted model.
- jQuery 1.9.x support.
- Mustache Helpers that accept computes and return an element should work.
What is new in version 1.1.3:
- Rendering models in tables produces different results than an equivalent observe
- Data Mustache helper doesn't parse attribute properly
- Partial Mustache views assume the right parent tag for live-binding
- Mustache partials don't parse properly
What is new in version 1.1.2:
- Solved issue when stealing mustache templates - can/view/mustache returns can object now.
- Controls shouldn't bind to templated events that contain undefined values.
- Resetting a form changes input values to.
- Further AMD build improvements.
What is new in version 1.1.0:
- Added AMD compliance.
What is new in version v1.0b:
- Updated paginate demo defaults.
Requirements:
- JavaScript enabled on client side
- Node.js for server-side environments
Comments not found