Skip to content
This repository was archived by the owner on Jun 23, 2026. It is now read-only.
This repository was archived by the owner on Jun 23, 2026. It is now read-only.

Countdown not allowing dynamic value #97

Open

Description

@analuisamartins

Hi,
I've not found a way to add a dynamic(scope) value in attr countdown.
Ex: or (This way throws error in parsing)
To fix this I changed the module directive adding the last line:
(countdown: '=', and it works)

  scope: {
    interval: '=interval',
    startTimeAttr: '=startTime',
    endTimeAttr: '=endTime',
    countdownattr: '=countdown',
    countdown: '=',

I'm missing something? There is another way?
Thanks.

Activity

  1. Tasemu commented on Jul 18, 2014

    @Tasemu

    I am also having this issue. I'm trying to put a scope variable into the countdown attribute and it fails with this error:

    Error: [$parse:syntax] Syntax Error: Token 'selectedNotification.countdown' is unexpected, expecting [:] at column 3 of the expression [{{selectedNotification.countdown}}] starting at [selectedNotification.countdown}}].

  2. Tasemu commented on Jul 18, 2014

    @Tasemu

    However the fix doesn't appear to be working for me.

  3. analuisamartins commented on Jul 18, 2014

    @analuisamartins
    Author

    The fix works without the {{ }}
    Ex:
    countdown="timeLimit"

  4. papasax commented on Dec 3, 2014

    @papasax

    Same issue, same fix. The fix works without the {{ }}.
    Why don't you ask for a pull?

  5. lukasz-kaniowski commented on Dec 23, 2014

    @lukasz-kaniowski

    Ask for pull, please.

  6. pencilcheck commented on Dec 28, 2014

    @pencilcheck

    $scope.$broadcast 'timer-set-countdown', secs

    This works.

  7. FelixFortis commented on Apr 16, 2015

    @FelixFortis

    Adding an ng-if worked for me, ensuring the variable was ready to go before the directive was rendered.

    So from:

    <timer end-time="myVariable">{{minutes}} minute{{minutesS}}</timer>
    

    To:

    <timer ng-if="myVariable" end-time="myVariable">{{minutes}} minute{{minutesS}}</timer>
    

    My example hasn't been tested for countdown, but I'm pretty sure it will translate.

    I don't think that adding countdown: '=' would be a good way to do things, as this is already set up with countdownattr: '=countdown', and it is countdownattr that does all the magic.

    You just need to delay rendering the directive until the point in the $digest cycle when your variable has been evaluated with an ng-if.

    Hope this helps.

    EDIT:
    More info on Angular's rendering cycle here: [ http://stackoverflow.com/questions/24615103/angular-directives-when-and-how-to-use-compile-controller-pre-link-and-post?rq=1 ]

  8. papasax commented on Apr 16, 2015

    @papasax

    Yes this was the reason. The variable was not set yet. I fixed it using a django template variable instead of a angular variable which was not always set.
    Your method with ng-if sounds good too.

  9. pencilcheck commented on Apr 18, 2015

    @pencilcheck

    @FelixFortis I tried that before, but the problem with that is first off end-time doesn't work at all, second, the moment it is assigned it will start with whatever time that was last rendered, then takes about a sec to update to the current value, meaning you will get a 1 or 2 sec flash. So this is not optimal in my opinion.

  10. h3nr1ke commented on Jan 29, 2016

    @h3nr1ke

    +1 for ng-if solution....

  11. wtczk commented on Mar 7, 2016

    @wtczk

    works fine:
    <timer ng-if="vm.countdown" countdown="vm.countdown"

    NaN:
    <timer countdown="vm.countdown"

    +1 for ng-if solution

  12. Miljokodiyan commented on May 27, 2016

    @Miljokodiyan

    +1 for ng-if solution ..i tried many ways except ng-if...Wowww its worked perfectly

  13. hdung912 commented on May 18, 2017

    @hdung912

    👍 for @wtczk it work for me thanks you :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions