These are chat archives for canjs/canjs

7th
Mar 2017
Nico R.
@nriesco
Mar 07 2017 02:17
@chasenlehara it does work in http://jsbin.com/taguluzeku/1/edit?html,js,console,output but when including it into my donejs project it will create the instance and even with default values, but if you modify any of the properties then it will “reset” the object (the if condition is met):
type: function(newPerson) {
  if (newPerson && newPerson instanceof Person === false) {
    console.log('>>> debug data 1:', newPerson);
    return new Person(newPerson);
  }
  return newPerson;
}
the problem after doing some debug is that the newPerson is the value of the input field, so it will never have any valid data again (as it is just one plain value)
I thought newPerson would at least be an object but only the currently selected input value is passed as newPerson
could it be can 2.x that is causing this?
Kevin Phillips
@phillipskevin
Mar 07 2017 03:19
{($value)}=“newPerson” is binding the value of the <input> with newPerson, right?
Nico R.
@nriesco
Mar 07 2017 11:00
@phillipskevin I made a mistake this is the JSbin: http://jsbin.com/kelilib/1/edit?html,js,output
the approach used by @chasenlehara works
but when I use it within the donejs project it won't
the way I use it looks like the jsbin (the last one) so you can set each of the properties
whenever you modify any of the inputs that are binded to a property of this new object then every input field is set with the return new Person(newPerson) code
and newPerson contains whatever you wrote on one of the inputs
not the complete object
Nico R.
@nriesco
Mar 07 2017 11:06
it is doing something equivalent to this: myObjectInstance = myObjectInstance.propertyOne
every time you modify (even before saving) it will do that so as a result you enter data on any field and then all the fields are set to null/empty
Kevin Phillips
@phillipskevin
Mar 07 2017 14:28
maybe it’s an issue with {{#with}}, can you try explicitly doing like {($value)}=“newPerson.name”?
@nriesco
Jeroen Cornelissen
@jeroencornelissen
Mar 07 2017 14:29

How do you handle a bulk save or destroy?
I have something like this: let todos = TodoModel.getList() and every todo has a checkbox and are stored in a selection DefineList.
Now I want to delete the selected todo items.

selection.forEach(todo => {
  todo.destroy();
});

This results in multiple requests to the backend, how can I group these request?
Do I make a custom funtion in my model bulkDestroy and then splice them out of my todos list? Or how do you handle this?

lmagarian
@lmagarian
Mar 07 2017 16:35
@chasenlehara thanks!
Nico R.
@nriesco
Mar 07 2017 18:49
@phillipskevin your approach does work (instead of {{#with}} access to each variable using newPerson.xxxxx)
but I fixed other stuff at the same time so I need to make sure if that was actually the solution or not
I’ll let you know asap
Kevin Phillips
@phillipskevin
Mar 07 2017 18:50
ok, thanks
Nico R.
@nriesco
Mar 07 2017 18:57
@phillipskevin yes, somehow {{#with}} is not working correctly, I’ll try one last thing..
Kevin Phillips
@phillipskevin
Mar 07 2017 18:57
only in donejs?
Nico R.
@nriesco
Mar 07 2017 18:57
no it didn’t work (wrap it with an {{#if}} statement)
only in donejs
Kevin Phillips
@phillipskevin
Mar 07 2017 18:58
what about just
{{#newPerson}}{{/newPerson}}
Nico R.
@nriesco
Mar 07 2017 18:58
I’ll try
cool that did the trick!!!
Kevin Phillips
@phillipskevin
Mar 07 2017 18:59
can you open an issue for {{#with}} ?
in donejs/donejs
Nico R.
@nriesco
Mar 07 2017 19:00
sure! thanks again!
Kevin Phillips
@phillipskevin
Mar 07 2017 19:00
we can check if it’s working in 1.0
Justin Meyer
@justinbmeyer
Mar 07 2017 19:06
@jeroencornelissen I would put a destroyList or some method on your list that makes the requests
and then call destroyedInstance on each one (assuming can-connect)