Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jun 26 20:36
    john-dent commented #88
  • Jun 26 20:35
    john-dent commented #88
  • Mar 19 22:58
    gmostert closed #244
  • Feb 08 06:53
    OliverWall commented #251
  • Dec 14 2018 08:06
    fadehelix commented #251
  • Dec 14 2018 05:03
    thematho commented #251
  • Dec 14 2018 05:01
    thematho commented #209
  • Dec 14 2018 04:59
    thematho commented #209
  • Dec 12 2018 21:57
    fadehelix synchronize #251
  • Nov 04 2018 23:35
    thematho synchronize #224
  • Oct 26 2018 16:00
    Stephanemw commented #248
  • Oct 26 2018 00:16
    thematho synchronize #224
  • Oct 16 2018 11:11
    caprica-Six commented #148
  • Oct 16 2018 11:11
    caprica-Six commented #148
  • Oct 16 2018 11:10
    caprica-Six commented #148
  • Oct 16 2018 11:08
    caprica-Six commented #148
  • Oct 16 2018 11:07
    caprica-Six commented #148
  • Oct 09 2018 00:35
    thematho commented #251
  • Sep 16 2018 13:27
    scriptrance commented #114
  • Sep 14 2018 23:22
    KiranChaudhariJM commented #114
Sergey Protko
@fesor
yes
resolves: {
    someData: function(someService) {
         return someService.getSomeData();
    }
}
Andrew Lombardi
@kinabalu
ahh and would you use “ngInject” within the function, or is it done automagically?
Sergey Protko
@fesor
well… can’t tell you) I just add ”ngInject” always)
just to be sure)
Andrew Lombardi
@kinabalu
haha
Andrew Lombardi
@kinabalu
@fesor trying to make the resolve stuff work, and ran into a slight issue:
        .state('accountsViewInfo', {
            url: '/accounts/info/:accountID',
            template: '<detail></detail>',
            resolve: {
                account: function($stateParams, accountService) {
                    "ngInject";
                    return accountService.getAccountById($stateParams.accountID);
                }
            }
        })

if I pass into the controller: account

    constructor($stateParams, $localStorage, accountService, account) {
        "ngInject";
        var self = this;
        this.accountService = accountService;

i get a can’t resolve provider error

Sergey Protko
@fesor
resolved values available only on the same level as state definition. components doesn’t know anything about it. That’s why I pass data to scope and then pass it to component’s controller via bindings
and that’s wahy uiRouter suck at it)
Andrew Lombardi
@kinabalu
@fesor could I trouble you for an example of bindings?
@fesor is that what you were doing in that example you pasted?
gah, nevermind I see it now
kinabalu @kinabalu is dense today
@kinabalu i think it is possible to make $stateChangeSuccess listener and update scope values from it… need to investigate this a little bit. Or just add PR to uiRouter
Andrew Lombardi
@kinabalu
@fesor that all worked great btw, thank you. going to work it into the refactor tonight / tomorrw
Diogo Afonso Barroso
@icylabsDev
hey guys I have a question. =) Can I use ng-include without $parent? ng-include creates a scope of its own. Can I pass in bindings?
Sergey Protko
@fesor
@icylabsDev it isn’t isolated, so yes.
Diogo Afonso Barroso
@icylabsDev
it isn't?
ok
i tought it was...
Sergey Protko
@fesor
it just inherited from parent
Diogo Afonso Barroso
@icylabsDev
ok, but then on the parent I don't need to do $parent?
Sergey Protko
@fesor
@icylabsDev but consider just to not use ng-include, write your component instead. If you need to chose template dynamically, you can pass function as template or templateUrl value

ok, but then on the parent I don't need to do $parent?

You never need to do $parent

Diogo Afonso Barroso
@icylabsDev
ok will have a look into that
thanks
but i need to load a bunch of templates dynamically. So you are saying make a template component and manipulate the template attribute?
Sergey Protko
@fesor
.component(‘myComponent’, {
    templateUrl: function (el, attr) {
         if (attr.type === ‘one’) return ‘one-column-layout.html’;
         it(attr.type === ‘two’) return ‘two-column-layout.html’;
         returndefault-layout.html’;
    }
})
Diogo Afonso Barroso
@icylabsDev
ok, I'm gonna try, I seem to uderstand
thanks
Diogo Afonso Barroso
@icylabsDev
This message was deleted
This message was deleted
can this work? I'm getting an error that elis not defined
got it
Diogo Afonso Barroso
@icylabsDev
hey @fesor I can it to work, but I have a problem if I try to do <exercise-template ng-if="false" template="{{vm.exercise.staticName}}"></exercise-template> I tries to render it, always.
even if the ng-if value is false
am i missing something?
i guess he is trying to run this before the ng-if
export function exerciseTemplateComponent(el,attr) {

  return {
    restrict: 'E',
    bindings: {
      template : '&'
    },
    templateUrl : function(el,attr) {
      console.log(attr.template);
      return `./app/templates/exercises/preview/${attr.template}.html`
    },
    controller,
    controllerAs: 'vm'
  }

}
  <exercise-template ng-if="false" template="{{vm.exercise.staticName}}"></exercise-template>
what can I do to fix this?
maybe check if template is valid? but does this code run only once? at the beginning?
Diogo Afonso Barroso
@icylabsDev
anyone?
well ok, I found a hack for this...
can't say I'm proud
  templateUrl : function(el,attr) {
      console.log(attr.template);
      if(attr.template == '{{vm.exercise.staticName}}'){
        return `./app/templates/exercises/preview/default.html`
      }else{
        return `./app/templates/exercises/preview/${attr.template}.html`
      }
    },
Diogo Afonso Barroso
@icylabsDev
that didnt work.
Sergey Protko
@fesor
@icylabsDev what do you mean?