Comments (2)
thanks @Wizek, #1
makes sense to me since that seems to be the expected HTML behavior.
As far as #2
...
To me it looks like the only other types this would apply to would be input[type="text"]
and textarea
. I don't think it should be a default behavior because of all the events flying around as a consequence, but perhaps a toggle if one wants it. @arturadib thoughts?
My suggestion for implementation would be along the lines of adding an options data-bind-instant=true
and doing something like below around https://github.com/arturadib/agility/blob/master/agility.js#L564:
// <input type="text"> and <textarea>: 2-way binding
else if ($node.is('input[type="text"], textarea')) {
// Model --> DOM
self.bind('_change:'+bindData.key, function(){
$node.val(self.model.get(bindData.key)); // this won't fire a DOM 'change' event, saving us from an infinite event loop (Model <--> DOM)
});
// Model <-- DOM
if ( $node.data( 'bind-instant' ) == true ) {
$node.keypress(function(){
// Without timeout $node.val() misses the last entered character
setTimeout(function(){
var obj = {};
obj[bindData.key] = $node.val();
self.model.set(obj); // not silent as user might be listening to change events
}, 50);
});
} // instant bind
else { // efficient bind
$node.change(function(){
var obj = {};
obj[bindData.key] = $(this).val();
self.model.set(obj); // not silent as user might be listening to change events
});
}
// 1-way attribute binding
bindAttributesOneWay();
}
from agility.
@tristanls Does $node.val()
also miss the last entered character if you bind for the keyup
event (instead of keypress
)? I hope it can be done more elegantly without setTimeout
.
from agility.
Related Issues (20)
- model->DOM for radio doesn't check the radio at load of the page
- Appending to a new container doesn't fully remove from former parent container
- How to bind a subproperty? HOT 1
- More info in model change event HOT 4
- Zero value in model is not visible HOT 1
- data-bind with class should not clobber the agility class of root element HOT 2
- Append html element to parent containers view context
- Serialize agility object HOT 3
- Data binding default model values on first initialization HOT 1
- [enhancement] Add missing bower.json.
- Wrap agility around an existing DOM container/element
- Bind Agility Object to DOM element in page HOT 3
- feature request
- Is this project being maintained/branched elsewhere? HOT 4
- Is it possable to add if judgement,just like [ng-if].
- Is it possable to add repeat function and repeat callback,just like [ng-repeat].
- agilityjs.com was shutdown HOT 2
- COPYRIGHT INFRINGEMENT
- Unable to extend 'user_defined_property' when extending an existing prototype using $$()
- Multiple binds? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from agility.