Javascript 无法在阵列上进行双向数据绑定
我正在尝试使用AngularJS创建一种拖放式游乐场。 密码在plunker上。为了理解这个问题,你主要需要看看普朗克 我试图在这里创建类似节点的结构,可以将其拖到右侧的操场上 拖动时,我将节点id添加到Javascript 无法在阵列上进行双向数据绑定,javascript,angularjs,data-binding,Javascript,Angularjs,Data Binding,我正在尝试使用AngularJS创建一种拖放式游乐场。 密码在plunker上。为了理解这个问题,你主要需要看看普朗克 我试图在这里创建类似节点的结构,可以将其拖到右侧的操场上 拖动时,我将节点id添加到$scope中的nodeChain变量中。 现在,我用ng repeat在UI中迭代nodeChain数组,在这里我绘制节点只是为了检查添加到链中的节点是否正确反射 但是, 我没有看到nodeChain从watchCollection日志更新,也没有看到在操场上绘制的节点在添加新节点时没有更新
$scope
中的nodeChain
变量中。
现在,我用ng repeat
在UI中迭代nodeChain
数组,在这里我绘制节点只是为了检查添加到链中的节点是否正确反射
但是,
nodeChain
从watchCollection
日志更新,也没有看到在操场上绘制的节点在添加新节点时没有更新提前谢谢 您需要触发$
摘要
循环来更新值。当$digest
循环开始时,它触发每个观察程序。这些观察者检查范围模型的当前值是否与上次计算的值不同。如果是,则执行相应的侦听器函数。因此,如果视图中有任何表达式,它们将被更新
if (!Bounds.within(event.pageX, event.pageY, leftPane)) {
scope.$parent.nodeChain.push(NodeChain.getNodeFromId(attr.nid))
scope.$apply();
}
工作打捞器:
控制台中出现ng repeat dupes错误,因为数组中存在重复值
nodeChain
如果我正确理解您的问题,您希望在下面的空白处添加删除的节点。请看地图
在范围外更改模型时,应添加$scope.apply()