2013-04-08 87 views
2

我有一个指令,生成一个拖放可重复列表添加和删除功能。如果在容器中单击,则动态添加输入,然后输入逗号,并在键入逗号时,将键入的值压入与ng-repeat一起使用的列表中以构建列表。 (本网站的用户应该有点熟悉:))动态添加项目到angularjs ng-repeat

当支持它的初始对象不为null时,它会很棒。但是,当对象开始为空,并且尝试添加第一个项目(通过检测null和scope。$应用初始化),则不会生成标记。

这里是一个显示我的意思。 http://plnkr.co/edit/Momlgpfy82kHRPwXGR8V?p=preview

在我的应用程序中,数据来自外部来源,所以我无法确保非空列表。我怎样才能得到正确的响应数组初始化(和后来推)?

+0

你为什么不能初始列表设置为'[]'而不是' null'? – 2013-04-09 00:10:45

+0

@JoshDavidMiller是的,我其实已经......原来是指令访问列表中的一个错误......我实际上需要'eval(“scope。”+ attrs.draggableList)而不是'scope [ attrs.draggableList] – 2013-04-09 00:38:33

+0

你绝对不希望使用'eval',因为这是不安全的。试试'scope。$ eval(attrs.draggableList)'代替:http://docs.angularjs.org/api/ng.$ro​​otScope.Scope。但请记住,这不是一个双向绑定,如果您更改指令外的列表,它将不会更新。你的指令应该使用'$ observe'和一个隔离范围。 – 2013-04-09 02:26:56

回答