Javascript 动态将项目添加到angularjs ng repeat
我有一个指令,它生成一个具有添加和删除功能的拖放可重排序列表。如果在容器中单击,将动态添加一个输入,然后键入该输入,当键入逗号时,键入的值将被推送到与ng repeat一起用于构建列表的列表中。(这个网站的用户应该有点熟悉:) 当支持它的初始对象不为null时,此操作非常有效。但是,当对象开始为null并且您尝试添加第一项(通过检测null和作用域.$apply初始化)时,不会生成标记 下面是一个例子来说明我的意思。Javascript 动态将项目添加到angularjs ng repeat,javascript,angularjs,Javascript,Angularjs,我有一个指令,它生成一个具有添加和删除功能的拖放可重排序列表。如果在容器中单击,将动态添加一个输入,然后键入该输入,当键入逗号时,键入的值将被推送到与ng repeat一起用于构建列表的列表中。(这个网站的用户应该有点熟悉:) 当支持它的初始对象不为null时,此操作非常有效。但是,当对象开始为null并且您尝试添加第一项(通过检测null和作用域.$apply初始化)时,不会生成标记 下面是一个例子来说明我的意思。 在我的应用程序中,数据来自外部源,因此我无法确保列表为非空。如何使angul
在我的应用程序中,数据来自外部源,因此我无法确保列表为非空。如何使angular正确响应数组初始化(以及以后的推送)?将列表设置为空数组…当将新项推送到数组中时,angular侦听器将更新指令
为什么不能将初始列表设置为
[]
而不是null
?@JoshDavidMiller是的,我实际上已经…被证明是指令访问列表的方式中的一个bug…我实际上需要eval(“scope.”+attrs.draggableList)而不是scope[attrs.draggableList]您肯定不想使用eval
,因为这样不安全。请尝试scope.$eval(attrs.draggableList)
。但是请记住,这不是双向绑定,如果在指令之外更改列表,它将不会更新。您的指令应该使用$observe
和一个隔离作用域。@JoshDavidiller感谢您的建议,我按照您的建议进行了评估更改,它满足了我的需要,因为列表不应该有任何外部更改。谢谢,这是指令中的一个错误。