在angularjs控制器中注入$element
首先,我读过数百万篇文章,说不应该在Angular中从控制器更新DOM元素。我知道 尝试使用角度计时器指令(倒计时)时。我遇到了一些问题,所以最后,在插件开发人员的帮助下,我们做了这个plunker,它工作正常,满足了我的要求 但是,将此代码移动到我的应用程序时,我在将$element添加到控制器时遇到下一个错误:在angularjs控制器中注入$element,angularjs,dom,angularjs-directive,Angularjs,Dom,Angularjs Directive,首先,我读过数百万篇文章,说不应该在Angular中从控制器更新DOM元素。我知道 尝试使用角度计时器指令(倒计时)时。我遇到了一些问题,所以最后,在插件开发人员的帮助下,我们做了这个plunker,它工作正常,满足了我的要求 但是,将此代码移动到我的应用程序时,我在将$element添加到控制器时遇到下一个错误: `Error: Unknown provider: $elementProvider <- $element` `Error:Unknown provider:$elem
`Error: Unknown provider: $elementProvider <- $element`
`Error:Unknown provider:$elementProvider使用jQuery解析DOM时看起来很难看,我不明白为什么不在ng repeat
中使用timer指令
这里有一种方法,只需在eleapsedTimer
的作用域中添加额外的数组,然后使用ng repeat
$scope.elapsedTimers=[];
$scope.$on('timer-stopped', function (data) {
/* loop through bookings to find one that just stopped*/
var now = new Date();
angular.forEach($scope.bookingsList, function (item) {
if (!item.elapsed) {
if (item.booking_date <= now) {
item.elapsed = true;
$scope.$apply(function () {
$scope.elapsedTimers.push(item)
});
}
}
});
});
$scope.elapsedTimers=[];
$scope.$on('timer-stopped',函数(数据){
/*循环浏览预订,找到刚刚停止的预订*/
var now=新日期();
angular.forEach($scope.bookingsList,函数(项){
如果(!item.appeased){
如果(item.booking_date)您记得在应用程序中注册计时器模块吗?(var app=angular.module('lazy-timer',['timer'])。
并将angular timer.min.js
添加到index.html中?$元素目前未找到。
<div id="result">
<div ng-repeat="item in elapsedTimers">ID {{item.id}} elapsed</div>
</div>