Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Oct 14 21:13
    greenkeeper[bot] labeled #5378
  • Oct 14 21:12
    greenkeeper[bot] opened #5378
  • Oct 14 21:12

    greenkeeper[bot] on can-simple-map-4.3.3

    fix(package): update can-simple… (compare)

  • Oct 14 20:19
    greenkeeper[bot] labeled #5377
  • Oct 14 20:19
    greenkeeper[bot] opened #5377
  • Oct 14 20:19

    greenkeeper[bot] on @feathersjs

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

  • Oct 14 20:18
    greenkeeper[bot] labeled #5376
  • Oct 14 20:18
    greenkeeper[bot] opened #5376
  • Oct 14 20:18

    greenkeeper[bot] on @feathersjs

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

  • Oct 14 14:43
    greenkeeper[bot] closed #5373
  • Oct 14 14:43

    greenkeeper[bot] on can-deep-observable-1.0.1

    (compare)

  • Oct 14 14:42

    m-mujica on update-deep-observable

    (compare)

  • Oct 14 14:42

    m-mujica on master

    Update can-deep-observable to l… Merge pull request #5374 from c… (compare)

  • Oct 14 14:42
    m-mujica closed #5374
  • Oct 14 14:42
    m-mujica closed #5365
  • Oct 14 14:09
    f-ricci starred canjs/canjs
  • Oct 14 13:55
    greenkeeper[bot] commented #5375
  • Oct 14 13:55

    greenkeeper[bot] on core-js-3.3.2

    chore(package): update core-js … (compare)

  • Oct 14 10:51
    m-mujica review_requested #5374
  • Oct 14 07:43
    rjgotten commented #5358
Gregg Roemhildt
@roemhildtg
Quick(ish) question. Do you guys think it'd be possible to use can-stache as a templating language that would output a different format than html? I'd like to design a JSON file, that serves as a template that I could run through my template renderer with helpers and context and output plain json.
This template file would resemble json, but would have stache tags inside it that would be replaced by my helpers and context.

Just to give you an example, this json file :

 [{
                                    "text": "Date & Time of inspection",
                                    "style": "grayb"
                                },
                                {
                                    "style": "gray",
                                    "text": "{{helpers.moment(data.inspection.DateCreated, format=M/D/YYYY H:m A)}}"
                                }
                            ],
                            [{
                                    "text": "Weather Conditions:",
                                    "style": "grayb"
                                },
                                {
                                    "style": "gray",
                                    "text": "{{data.inspection.WeatherCondition::None Specified}}"
                                }
                            ],

Should compile down to plain json where the special tags would be replaced by my scope and helper output

Gregg Roemhildt
@roemhildtg
I think dot will work for this actually http://olado.github.io/doT/
Justin Meyer
@justinbmeyer
@roemhildtg you'd want to make stache text-only
so it doesn't produce fragments
About to discuss proposals: https://www.youtube.com/watch?v=2WM0WOAY_jE
Matthew Phillips
@matthewp
Watch that ^^
kostya.aderiho
@kaderiho
Hi guys, Is there any approach to understand that component's stache template is rendered, I want to run my callback once component is rendered. The inserted method is not appropriate because there are some async data in the viewModel and template is rendered with some delay. I will appreciate any help. Thanks!
Frank Lemanschik
@frank-dspeed
@kaderiho i solve that via a next Tick operation after the async operation
so for example if the async operation is fetching data and returning a promise i simply integrate at that point a next tick operation or a timer to get next tick
a other nice way is also if its a standart async operation that returns a promise to call a function inside the stache template once promise is resolved
a example where i am using that is a animated gallery that i init after the stache template is rendered and data is fetched
via the stache template
Frank Lemanschik
@frank-dspeed
{{#if listArtist.isResolved}}
    <div  on:inserted="initGallery()" class="justified-gallery justifiedGallery" id="puppies">
        {{#listArtist.value}}
        <!-- https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQN8oh9a91sQGeOjg7DwZFAaecnWnLlUoVEREk-yDlbr75vcbHG  on:click="doSomething(%element)"-->

          <div id="{{_id}}">
            <a  href="{{routeUrl ( page='details'  )}}&artistId={{_id}}"><img alt="{{name}}" data-artist-id="{{_id}}"  src="http://master.peep:3030/bilder/{{_id}}/{{mainImage}}" /></a>
          </div>

        {{/listArtist.value}}
        <br />
    </div>
    <a href="{{routeUrl ( page='session' )}}"><button style="width: 100%;" class="btn btn-success">BUCHUNG ABSCHLIESSEN</button></a>
    {{/if}}
look at the on:inserted
this is for example one easy way to fire a function after data is Resolved
Frank Lemanschik
@frank-dspeed
but if your a current canjs user you need to import something to make this on:inserted work again
as far as i remember

@kaderiho can you describe more about your problem? I'm not sure I understand it. Component's templates are rendered immediately. So I'm not sure what you mean by:

template is rendered with some delay

Matthew Phillips
@matthewp
Please fill out the community survey! https://www.surveymonkey.com/r/donejs-survey-8
qantourisc
@qantourisc
Where to unlisten to event to prevent memory leaks ?
Kevin Phillips
@phillipskevin
how are you listening to the event, @qantourisc ?
RanjanSubbiah-tc
@RanjanSubbiah-tc
hey guys, Is it possible to do live-bindings using can-slot? https://canjs.com/doc/can-component/can-slot.html
{{#each ./slides}}

        <can-slot name="nameOfImage" isActiveYes:from="../isActive(scope.index)"/>

        <content />

{{/each}}

<can-template name="nameOfImage">

        <div
            class="slide photosSlide {{#if ./isActiveYes}} active {{/if}}"
            tabindex="{{#if ./isActiveYes}} 0 {{else}} -1 {{/if}}"
        >
               </div>
</can-template>
it's not working when I implement it like above
qantourisc
@qantourisc
@phillipskevin Mostly binding on defineMaps. The app is leaking, but I am not sure where from :(
Kevin Phillips
@phillipskevin
how are you doing the binding though?
qantourisc
@qantourisc
o let me check
I have a few: let compute = can.compute( serialize() ).on("change",func) and a few this.on("field",func); or did you mean something else ?
I also have some "recrusive" bindings, or is there a better way to do it ? I wish to listen to myDefineMapInstance.member.submember. But member might not be defined yet.
Kevin Phillips
@phillipskevin
so for the first ones, you basically need to call off
each this.on("field",func); should have a matching this.off("field",func);
qantourisc
@qantourisc
I'd be happy to. I was quite literal in my initial question though: where/when ? I'd be happy to cleanup, but I need some hook for when things "disappear".
Kevin Phillips
@phillipskevin
when are you setting them up?
qantourisc
@qantourisc
Mostly if not all can.components, and members of the ViewModel
curse the lack of clear RAII on JS ;)
Kevin Phillips
@phillipskevin
are you calling it in init?
qantourisc
@qantourisc
yes
Kevin Phillips
@phillipskevin
ok, can you do it in inserted instead? (or the connectedCallback in newest versions)
qantourisc
@qantourisc
Sorry, i feel to green in javascript memory management to provide the answers you seek without so many questions.
I think running them during inserted would be possible yes.
Kevin Phillips
@phillipskevin
if you can set up the listeners in inserted then you can remove the listeners in beforeremove
also, there are probably better ways to do these things without having to manually setup/teardown event handlers
can-component's events object does this cleanup for you
qantourisc
@qantourisc
Looks intrestesting, i'm tempted to call ViewModel.my_cleanup() from beforeremove for my convienece though.
Kevin Phillips
@phillipskevin
or using derived properties in the viewmodel is even better
qantourisc
@qantourisc
Derived sound nice. he! reminds me of some ugly code I have going.
I have a DefineMap that combines 2 DefineMaps into a new view, with writable properties, but .... I had to manually bind and trigger events in the combining DefineMap.