获取 ng-init 和 ng-repeat 中的元素
Getting an element inside ng-init and ng-repeat
我正在尝试使用ng-init在特定元素加载时进行一些初始化。在我的模板中,我正在这样做:
<div id="timer-0" ng-init="initTimer('timer-0', timerOne);"></div>
timerOne 是在控制器的作用域中声明的一个对象,如下所示:
$scope.timerOne = {...};
$scope.initTimer = function(id, timer)
{
var element = angular.element("#"+id);
// a bunch of other stuff with the timer and element interacting with each other
}
当我的HTML像这样硬编码时,一切正常,但是当我开始尝试在ng-repeat中调用initTimer时,angular.element什么也没返回。
我的 ng 重复看起来像这样:
<div ng-repeat="timer in timers">
<h1>{{timer.label}}</h1>
<div id="timer-{{$index}}" ng-init="initTimer('timer-'+$index, timer);"></div>
</div>
我猜这些元素是在调用 ng-init 后插入到 DOM 中的。一旦我确定这些元素存在,有没有办法调用我的 init 函数?
只需在 init 函数中将索引作为参数传递即可。
<div ng-repeat="timer in timers">
<h1>{{timer.label}}</h1>
<div id="{{'timer-'+$index}}" ng-init="initTimer($index, timer);"></div>
</div>
在控制器中尝试像这样访问元素:
$scope.initTimer = function(id, timer)
{
var element = angular.element('timer-' + id);
}
相关文章:
- 使用 ng-repeat访问 ng 表单元素/值
- AngularJS:根据其他对象预先选择ng repeat中的select元素
- Angular js将只显示ng repeat中的第一个元素
- 带有 ng-repeat 的 Angular JS 指令无法遍历子元素
- $compile和ng repeat未返回正确的元素
- 使用ng repeat时元素ID重复
- AngularJS:如何使用ng repeat来显示父数组中包含的数组的所有元素
- 如何使用ng repeat在匹配的元素上添加活动类
- 使用ng repeat将表单元素绑定到角度中的新对象
- 如何只更新ng repeat中的部分元素
- 操作NG-REPEAT的第一个元素
- AgularJS ng-repeat而不重复父元素
- 如何使用 ng-repeat $index 在数组中查找元素
- 获取 ng-init 和 ng-repeat 中的元素
- AngularJS不编译具有ng-repeat的元素
- 添加重复键对象时如何更新 ng-repeat 列表中的元素
- 将 'ng-repeat' 元素传递给 javascript 函数
- AngularJS:使用 jQuery 将事件侦听器绑定到 ng-repeat 生成的元素
- 如何在使用 ng-repeat(ng-repeat)时获取元素的正确高度和偏移值
- 为每个元素 ng-repeat 应用自定义 ng-attr