Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 14:21
    frank-dspeed commented #5460
  • 14:13
    frank-dspeed commented #5460
  • 14:12
    frank-dspeed commented #5460
  • 14:10
    frank-dspeed commented #5460
  • 13:37
    jvkdev starred canjs/canjs
  • 13:36
    justinbmeyer commented #5460
  • 06:45
    frank-dspeed commented #5460
  • 06:42
    frank-dspeed edited #5460
  • 06:41
    frank-dspeed opened #5460
  • Jan 20 21:58
    justinbmeyer commented #5459
  • Jan 20 07:49
    frank-dspeed opened #5459
  • Jan 19 16:39
    leoj3n commented #5107
  • Jan 19 16:37
    leoj3n commented #5107
  • Jan 19 16:32
    ThomasBrickerBK starred canjs/canjs
  • Jan 18 01:06
    greenkeeper[bot] commented #5422
  • Jan 18 01:06

    greenkeeper[bot] on @feathersjs

    chore(package): update @feather… (compare)

  • Jan 18 00:48

    greenkeeper[bot] on @octokit

    (compare)

  • Jan 18 00:46

    greenkeeper[bot] on @octokit

    chore(package): update @octokit… (compare)

  • Jan 17 18:14
    patosullivan starred canjs/canjs
  • Jan 17 17:42
    bmomberger-bitovi synchronize #5451
Christopher Oliphant
@RALifeCoach
why does it work once, but not the second time?
Kevin Phillips
@phillipskevin
I’m not really sure what you mean
it sounds like playerRow is being set some time while your template is rendering
Julian
@pYr0x
only .attr() let can.compute know about accesing the property
Kevin Phillips
@phillipskevin
if you use .attr() it will render the section with ‘1’ then render the section with ‘2’ then re-render the section with ‘1’ again because playerRow changed
Christopher Oliphant
@RALifeCoach
I will change them all to attrs and keep you posted
Kevin Phillips
@phillipskevin
ok
you can do this.attr(‘playerRow.player.status’)
Christopher Oliphant
@RALifeCoach
the second time this.playerRow.attr('player’) gives <not available>
Kevin Phillips
@phillipskevin
should be this.attr(‘playerRow.player’)
Christopher Oliphant
@RALifeCoach
sorry, I thought either would work - I will make the change
Kevin Phillips
@phillipskevin
the first will only trigger a render if player changes
but if playerRow changes it won't
Christopher Oliphant
@RALifeCoach
I don’t want either player or player row to change
I am simply trying at access them to test for a value
Kevin Phillips
@phillipskevin
I know you don’t want them to change
something sets playerRow
before that, playerRow will be undefined
so in order for your template to render when playerRow changes from undefined to the correct value, you need to listen to when playerRow changes
Christopher Oliphant
@RALifeCoach
are you suggesting I create an event on playerRow?
Kevin Phillips
@phillipskevin
no
using .attr() sets up a listener internally
so that stache knows to recompute your isActive function
and re-render
Mohamed Cherif Bouchelaghem
@cherifGsoul
@jeroencornelissen my-form should be removed and inserted everytime activeForm change
Christopher Oliphant
@RALifeCoach
@phillipskevin I made the change you requested (after being pulled away to work on two other priorities)
isActive is getting called again with ctr = 1
therefore playerRow is getting altered - the question is where?
is the stache file parsed and populated on the main thread?
Kevin Phillips
@phillipskevin
yes
can you just bind on playerRow and look at the stack trace to see what is changing it?
Christopher Oliphant
@RALifeCoach
can I bind in the Map events: { playerRow: function () […
or does it need to be on the component?
Kevin Phillips
@phillipskevin
on the map, you can add an init
then do
  init: function() {
    this.bind(‘playerRow’, function() { … });
  }
Christopher Oliphant
@RALifeCoach
BTW there is no Map.init in the documentation
thanks
Kevin Phillips
@phillipskevin
Map extends Construct
so init is on can.Construct
Christopher Oliphant
@RALifeCoach
that is very true, and it would have been nice to see it - especially with that example you just gave me
Mohamed Cherif Bouchelaghem
@cherifGsoul
@jeroencornelissen look at Tabs example you follow the same pattern to make it works https://canjs.com/docs/can.Component.html
Christopher Oliphant
@RALifeCoach
playerRow is being updated during the stache parsing and populating
Kevin Phillips
@phillipskevin
ok
you’re not expecting that?
Christopher Oliphant
@RALifeCoach
No
Kevin Phillips
@phillipskevin
how is playerRow defined?
Christopher Oliphant
@RALifeCoach
data = { playerRow: { …} }; var map = new mapBase(data);
This message was deleted
that is then inserted into the compoent
var template = can.stache('<player-row id="player-row-' + this.pid + '"></player-row>');
this.container.append(template(map));