Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jun 19 19:39
    msa46 starred canjs/canjs
  • Jun 14 20:48
    ParthPandey2611 commented #5509
  • May 02 09:48
  • May 01 13:11
    joanthethings starred canjs/canjs
  • Apr 25 23:14
  • Apr 18 07:24
    catafest-work starred canjs/canjs
  • Apr 11 18:13
    maxgrass starred canjs/canjs
  • Apr 04 00:00
    mvandermeulen starred canjs/canjs
  • Mar 31 19:44
    robertkraig starred canjs/canjs
  • Mar 16 02:44
    jiangtao starred canjs/canjs
  • Mar 08 18:20
    beardordie starred canjs/canjs
  • Mar 06 09:02
    frank-dspeed commented #5459
  • Mar 06 09:01
    frank-dspeed commented #5459
  • Mar 06 09:01
    frank-dspeed commented #5459
  • Mar 04 17:03
    justinbmeyer commented #5459
  • Mar 04 16:41
    rjgotten commented #5459
  • Mar 04 16:23
    SKFrozenCloud commented #5459
  • Mar 04 16:02
    SKFrozenCloud starred canjs/canjs
  • Mar 04 03:10
    Rainnut starred canjs/canjs
  • Mar 03 20:08
    kaustav202 starred canjs/canjs
Chasen Le Hara
@chasenlehara
👍
Chasen Le Hara
@chasenlehara
@nriesco I think the Type is creating a new instance when you’re expecting it to be null.
Also, new Map() is not what you want, but just new Person(), right?
Here’s how I think I would approach what you’re doing: http://jsbin.com/taguluzeku/1/edit?html,js,output
lmagarian
@lmagarian
@chasenlehara will that make more than one API call if playersPromise.value is referenced in multiple places?
Nico R.
@nriesco
@chasenlehara thanks, it looks good and it works as I expected. I’ll try to modify my donejs project to see if I can reproduce what you did.
Chasen Le Hara
@chasenlehara
@lmagarian It shouldn’t; value is only run the first time to get the initial value.
Even if it were in a get, it would only run again if something observable changed, but there’s nothing observable in that function.
Let’s say you did need to make that API call again because the arguments changed. That might look something like:
    orderBy: {
        value: "name"
    },
    playersPromise: {
        get: function(){
            return Player.getList({orderBy: this.orderBy});
        }
    }
Nico R.
@nriesco
@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
{($value)}=“newPerson” is binding the value of the <input> with newPerson, right?
Nico R.
@nriesco
@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
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
maybe it’s an issue with {{#with}}, can you try explicitly doing like {($value)}=“newPerson.name”?
@nriesco
Jeroen Cornelissen
@jeroencornelissen

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
@chasenlehara thanks!
Nico R.
@nriesco
@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
ok, thanks
Nico R.
@nriesco
@phillipskevin yes, somehow {{#with}} is not working correctly, I’ll try one last thing..
Kevin Phillips
@phillipskevin
only in donejs?
Nico R.
@nriesco
no it didn’t work (wrap it with an {{#if}} statement)
only in donejs
Kevin Phillips
@phillipskevin
what about just
{{#newPerson}}{{/newPerson}}
Nico R.
@nriesco
I’ll try
cool that did the trick!!!
Kevin Phillips
@phillipskevin
can you open an issue for {{#with}} ?
in donejs/donejs
Nico R.
@nriesco
sure! thanks again!
Kevin Phillips
@phillipskevin
we can check if it’s working in 1.0
Justin Meyer
@justinbmeyer
@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)
lmagarian
@lmagarian
I'm getting this error: Error: TypeError: Cannot redefine property: _instanceDefinitions
at Function.defineProperty (<anonymous>)
at defineConfigurableAndNotEnumerable (can-define.js:32)
at DefineMap.define.setup (can-define.js:712)
at DefineMap.setup (map.js:113)
at Function.newInstance (can-construct.js:289)
at DefineMap.init (can-construct.js:594)
at new DefineMap (eval at <anonymous> (can-construct.js:NaN), <anonymous>:3:32)
at Object.observable (can-define.js:818)
at Object.eval (can-define.js:708)
at each (each.js:39)
From this code: Message.get({ "id": messageId })
What does it mean, and how do I fix it?
Frank Lemanschik
@frank-dspeed
it means you should post a issue fully described in can-define project on github