Comments (7)
What if value.length != this.items.length
?
from backbone-forms.
I'm not saying my Overwrite is bug-free, but the current setvalue() implementation definitely causes problems. Probably for for-loop would need to work with addItem / removeItem ?
from backbone-forms.
Probably, yes.
I was just concerned because you said that you overwrote it, so I thought you might have a bug in production somewhere.
from backbone-forms.
Sorry about the misleading wording. I want to use the backbone forms JS unchanged, so I'm overwriting some prototype functions in my own code. My suggestion (haven't tested it):
Backbone.Form.editors.List.prototype.setValue = function(value) {
this.value = value;
if (!$.isArray(value)) {
throw new Error("List value must be an array");
}
for (var i = 0; i < value.length; i++) {
if (this.items.length < i) {
this.items[i].setValue(value[i]);
}
else {
this.addItem(value[i], false);
}
}
while (this.items.length > value.length) {
this.removeItem(this.items[this.items.length - 1]);
if (value.length === 0 && this.items.length === 1) {
// beware that removeItem() will re-add a new item
// if 'this.items' is empty
break;
}
}
};
from backbone-forms.
I've been trying to reproduce this at a higher level - possibly misunderstand what you're trying to achieve. Anyway, I've created a JSFiddle which calls setValue on the field - but nothing seems to change in the editors. Is that what you mean by "not detached", or are you talking about something else (perhaps there's 2 bugs here, or I'm testing something that shouldn't normally happen?)
from backbone-forms.
I've taken your JSFiddle and extended it a bit to this one.
I'd expect the list to re-render on the form.setValue() call, for seem reason that's not happening. If the list get's re-rendered, the .change() handler doesn't get called anymore, because this.$el was replaced.
from backbone-forms.
I see what you mean now.
The other problem is that if you console.log form.getValue() after clicking the button, you have 6 items in your array - that's #372 all over. I think I'll try to look at that pull-request to see if we can solve your issue too.
from backbone-forms.
Related Issues (20)
- Code mismatch between github and NPM registry HOT 2
- lodash 4.x support HOT 1
- itemToString does not escape values by default HOT 3
- Form.Editor.validate() reads all form values for nothing HOT 2
- $ not declared in Form.validators
- Make list works with Backbone Collection
- 0.15.0 milestone HOT 2
- Select._getOptionsHtml/arrayToHTML is very slow
- Bootstrap 3 inline radio / checkbox items
- Disabling fields: use $.prop rather than $.attr
- submodule in npm HOT 1
- Cannot read property 'render' of undefined HOT 1
- Submitting the form by pressing "enter" on a Number editor doesn't work
- reasons bb-forms is still fixed to bb ~1.2? HOT 4
- form.commit({validate:false}) still validates individual fields HOT 6
- How do I load List editor with webpack/browerify? HOT 1
- Number cannot accept negative values HOT 1
- [QUESTION] Where I can find the CI service?
- setOptions not working in select editor when function is used.
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 backbone-forms.