繁体   English   中英

为什么通过console.log传递给我的ngModel的对象以角度显示为未定义?

[英]Why is the object I add to my ngModel in angular showing up as undefined when passed through console.log?

我的角度应用程序中有两个指令。

指令1的ngModel是对象数组。 通过指令方法,我将一个对象推到数组的末尾。

因此,例如,原始的ngModel数组为[1,2,3,4],我要添加5,因此数组看起来像[1,2,3,4,5]。

该ngModel作为ngModel传递给我的第二个指令。 我可以console.log数组并查看所有5个项目,但是当我尝试访问最后一个项目(添加的项目)时,它不会显示。 例如,如果我在数组上执行foreach,就好像最后一项不存在。

我无法访问该物品。 有人有什么想法吗?

谢谢!

我想您使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM