Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态将项目添加到angularjs ng repeat_Javascript_Angularjs - Fatal编程技术网

Javascript 动态将项目添加到angularjs ng repeat

Javascript 动态将项目添加到angularjs ng repeat,javascript,angularjs,Javascript,Angularjs,我有一个指令,它生成一个具有添加和删除功能的拖放可重排序列表。如果在容器中单击,将动态添加一个输入,然后键入该输入,当键入逗号时,键入的值将被推送到与ng repeat一起用于构建列表的列表中。(这个网站的用户应该有点熟悉:) 当支持它的初始对象不为null时,此操作非常有效。但是,当对象开始为null并且您尝试添加第一项(通过检测null和作用域.$apply初始化)时,不会生成标记 下面是一个例子来说明我的意思。 在我的应用程序中,数据来自外部源,因此我无法确保列表为非空。如何使angul

我有一个指令,它生成一个具有添加和删除功能的拖放可重排序列表。如果在容器中单击,将动态添加一个输入,然后键入该输入,当键入逗号时,键入的值将被推送到与ng repeat一起用于构建列表的列表中。(这个网站的用户应该有点熟悉:)

当支持它的初始对象不为null时,此操作非常有效。但是,当对象开始为null并且您尝试添加第一项(通过检测null和作用域.$apply初始化)时,不会生成标记

下面是一个例子来说明我的意思。


在我的应用程序中,数据来自外部源,因此我无法确保列表为非空。如何使angular正确响应数组初始化(以及以后的推送)?

将列表设置为空数组…当将新项推送到数组中时,angular侦听器将更新指令


为什么不能将初始列表设置为
[]
而不是
null
?@JoshDavidMiller是的,我实际上已经…被证明是指令访问列表的方式中的一个bug…我实际上需要
eval(“scope.”+attrs.draggableList)而不是
scope[attrs.draggableList]您肯定不想使用
eval
,因为这样不安全。请尝试
scope.$eval(attrs.draggableList)
。但是请记住,这不是双向绑定,如果在指令之外更改列表,它将不会更新。您的指令应该使用
$observe
和一个隔离作用域。@JoshDavidiller感谢您的建议,我按照您的建议进行了评估更改,它满足了我的需要,因为列表不应该有任何外部更改。谢谢,这是指令中的一个错误。