我正在使用 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 控制台中看到错误。
最佳答案
您的错误似乎实际上是您正在使用的属性已经将其内容计算为表达式。你会想做这样的事情:
<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>
<小时/>
附注您的 fiddle 无法工作,因为您需要将框架和扩展更改为 No wrap - in <body>
关于javascript - Angular 不允许我将表达式放入 <timer> 元素属性中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33022631/