我的角度应用程序中有两个指令。
指令1有一个ngModel,它是一个对象数组。 通过指令方法,我将一个对象推送到数组的末尾。
因此,例如,原始的ngModel数组是[1,2,3,4],我正在添加,因此数组看起来像[1,2,3,4,5]。
此ngModel作为ngModel传递给我的第二个指令。我可以console.log数组并查看所有5个项目,但是当我尝试访问最后一项时,我添加的项目,它没有显示。例如,如果我在数组上执行foreach,就像最后一项不存在一样。
我无法访问该项目。任何人都有任何想法?
谢谢!
答案 0 :(得分:0)
我想您使用link
函数在父指令中添加第五项。
link
个功能有两种类型:pre
和post
链接。假设您有parent
和嵌套child
指令。链接函数将按以下顺序调用:
默认情况下,如果在指令对象表示法中使用link
,则它将是后链接函数。
return {
link: function (scope, element, attrs) { }
}
如果您在父级后链接中添加第五个元素,那么它将无法用于子级,因为它将在调用子级链接后添加。向孩子提供正确初始化数据的方法是使用预链接或控制器(但后者超出了范围)。
return {
link: {
pre: function (scope, element, attrs) { }
}
}
以下是一个有效的plnkr示例:http://plnkr.co/edit/24KrGLdnkDCrLr2SzXhQ?p=preview