我有以下代码段:
$scope.addName = (name) ->
$scope.names.push name
$(".names").draggable
helper: "clone"
revert: true
$(".name-list").droppable
accept: ".names"
activate: ->
$(@).addClass "bordered"
deactivate: ->
$(@).removeClass "bordered"
drop: (e, ui) ->
name = ui.draggable.attr "data-names-name"
$scope.addName name
此处,用户在名称列表中拖动一个名称(表示为)div
,然后将拖动的名称添加到名称数组中。
问题是,在将新名称推入名称数组后,名称数组仍为空。
答案 0 :(得分:1)
将其包装在$ scope中。$ apply(抱歉不使用CoffeeScript)
..
$scope.$apply(function(){
$scope.addName(name);
});
答案 1 :(得分:0)
每当脚本在角度上下文之外执行时,您需要手动让angular知道触发摘要周期并更新视图。
在脚本中,您应该能够执行以下操作:
drop: (e, ui) ...
$(e).scope().$digest();
我注意到$ scope已经在drop函数中可用了。然后以下是更好的:
$scope.$digest();