Angular不会让我把表达式放在<timer>元素属性中

时间:2015-10-08 17:45:47

标签: javascript angularjs timer

我正在使用AngularJS和angular-timer(http://siddii.github.io/angular-timer/)。出于某种原因,我无法使<timer some-attr="{[ some expression ]}" />之类的东西正常工作。

(我将Angular配置为使用{[和]},因为我在后端使用Jinja2,它使用{{}}并与Angular冲突。)

它只是在我的JS控制台中抛出此错误:

Error: [$parse:syntax] Syntax Error: Token '[' invalid key at column 2 of the expression [{[ countdown.time ]}] starting at [[ countdown.time ]}].

为什么会这样?实际代码中的其他表达式(例如,在<timer> </timer>之间)工作得很好。

你可以在这里看到一个JSFiddle:https://jsfiddle.net/d3xbs263/3/

可以在JS控制台中看到错误。

1 个答案:

答案 0 :(得分:1)

您的错误实际上似乎是您正在使用的属性已将其内容评估为表达式。你可能想做这样的事情:

<div ng-app="app">
    <div class="countdown" ng-controller="CountdownCtrl as countdown">
        <!-- No brackets or expression needed -->
        <timer interval="1000" end-time="time">
            <h3 style="color: #9E75E3;">How long until Pony Time?</h3>
            <div class="numbers" id="count2" style="text-align: center;"></div>
            <div class="numbers" id="dday">{[ days ]}</div>
            <div class="title" id="days">Day{[ daysS ]}</div>
            <div class="numbers" id="dhour">{[ hours ]}</div>
            <div class="title" id="hours">Hour{[ hoursS ]}</div>
            <div class="numbers" id="dmin">{[ minutes ]}</div>
            <div class="title" id="minutes">Minute{[ minutesS ]}</div>
            <div class="numbers" id="dsec">{[ seconds ]}</div>
            <div class="title" id="seconds">Second{[ secondsS ]}</div>
            <h5>The next episode airs at 11:30 AM Eastern Time on Saturday</h5>
        </timer>
    </div>
</div>

Working fiddle

P.S。您的小提琴无效,因为您需要将框架和扩展名更改为No wrap - in <body>