我有随机生成id的元素,我的问题是如何从控制器访问它,我的代码是这样的。
self.componentId = '#' + Math.random().toString();
angular.element(self.componentId).bind('scroll', function () {
if (angular.element(this).scrollTop() + angular.element(this).innerHeight() >= angular.element(this)[0].scrollHeight) {
console.log('testing 123');
}
});
和html元素我有
<div id={{$ctrl.componentId}}></div>
我的问题很简单,我需要在上面的功能上进行更改以使其看到滚动事件。如果我传入angular.element(&#39; #hardcodedId&#39;),那么它可以工作......
答案 0 :(得分:0)
那是因为在<div id={{$ctrl.componentId}}></div>
之后self.componentId = '#' + Math.random().toString();
不会被立即评估,但是当角度开始于摘要周期时
我看到你问题的两个解决方案:在$timeout
内部绑定,它将推迟到摘要周期开始,或者向你的元素添加class
,以便在设置它之前绑定它id
1}}
如果我是你,我会采取第二种方式