通过jQuery回调修改作用域变量
Modify scope variable through jQuery callback
我有以下代码片段:
$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
,然后将拖动的名称添加到名称数组中。
问题是,在将新名称压入后,names数组仍然为空。
将其包装在$scope中。$apply
..
$scope.$apply(function(){
$scope.addName(name);
});
当脚本在angular上下文之外执行时,你需要手动让angular触发一个摘要循环并更新视图。
在脚本中,您应该能够执行以下操作:
drop: (e, ui) ...
$(e).scope().$digest();
我注意到$scope已经在drop函数中可用。那么下面这个更好:
$scope.$digest();
相关文章:
- 当我更新另一个作用域变量时,作用域变量会自动更新
- 如何在隔离作用域指令中访问此作用域变量
- 正在向构造函数添加作用域变量
- 如何在angularjs中将多个作用域变量传递到自定义指令中
- 作用域变量未从状态父控制器继承到子控制器
- 插槽:访问作用域变量
- 在另一个作用域变量中使用AngularJS作用域变量
- 在Angular.js中通过检查作用域变量进行过滤
- 如何更新作为属性传入的作用域变量
- Node.js中的垃圾收集作用域-变量将保持设置状态多长时间
- 从$http.get调用更新Angular作用域变量
- AngularJS ui路由器:访问子作用域变量
- 访问AngularJS中函数中的作用域变量
- 为什么Angular 1.5双向绑定在将作用域变量传递给组件绑定时失败
- 修改作用域变量后,未更新作用域绑定
- 控制器作用域变量在刷新之前未加载
- 将Angular作用域变量的字符串描述传递给指令
- 将内部作用域变量绑定到外部“模板”
- 无法在 $.post 回调中设置作用域变量
- 如何从在 JS 中用作参数的匿名函数中分配外部作用域变量