选择Angularjs ng repeat创建的新DOM元素
我正在为一个web应用程序使用Angularjs。我已经尝试过搜索来找到我的问题的解决方案,但Angularjs似乎不能方便地访问ng Repeat中新创建的DOM元素 我已经准备了一个JSFIDLE来显示实际问题。 以下是链接:选择Angularjs ng repeat创建的新DOM元素,angularjs,Angularjs,我正在为一个web应用程序使用Angularjs。我已经尝试过搜索来找到我的问题的解决方案,但Angularjs似乎不能方便地访问ng Repeat中新创建的DOM元素 我已经准备了一个JSFIDLE来显示实际问题。 以下是链接: 请让我知道如何在ng repeat中选择新的DOM元素。要扩展我的评论,我已经更新了您的fiddle,以显示一个简单的指令实现,该指令会提醒元素的类 原始评论: 关于控制器中的dom操作,我们认为您根本不应该这样做。它应该放在指令中。控制器应仅包含业务逻辑 我不知道
请让我知道如何在ng repeat中选择新的DOM元素。要扩展我的评论,我已经更新了您的fiddle,以显示一个简单的指令实现,该指令会提醒元素的类 原始评论:
关于控制器中的dom操作,我们认为您根本不应该这样做。它应该放在指令中。控制器应仅包含业务逻辑
我不知道它为什么不起作用,但可能是因为angular此时仍在运行它自己的东西。有两种方法可以做到这一点: 1 ng初始值
function controller($scope) {
$scope.items = [{id: 1, name: 'one'}, {id: 2, name: 'two'}];
$scope.initRepeaterItem(index, item) {
console.log('new repeater item at index '+index+':', item);
}
}
2突变观察者稍微复杂一点
在指令中,对其父元素获得新子元素的元素执行此操作(在本例中为
)
var observer=新的突变观察者(函数(突变){
突变。forEach(功能(突变){
//您将在此处收到有关DOM突变的通知
//如果是插入,请检查mutation.type
log(mutation.target.nodeName、mutation.type、mutation);
});
});
var config={childList:true,attributes:false,characterData:false,
子树:false,attributeOldValue:false,characterDataOldValue:false};
observer.observe(元素[0],配置);
演示
文档
浏览器支持
关于控制器中的dom操作,我们认为您根本不应该这样做。它应该放在指令中。为什么它不起作用,我不知道,但可能是因为angular此时仍在运行它自己的东西。我想如果您能解释为什么或出于什么原因尝试访问新的dom元素,您将能够获得更好的解决方案。如果你能解释一下,你可能会得到一个解决问题的答案。谢谢你的简单答案。:) Demo http://plnkr.co/h6kTtq Documentation https://developer.mozilla.org/en/docs/Web/API/MutationObserver Browser support http://caniuse.com/mutationobserver