javascript - AngularJS 从指令更新作用域变量

标签 javascript jquery angularjs packery

我正在 angular 中的小部件面板上工作和 packery

我想做的是绑定(bind) packery 设置的订单将一个元素拖动到我的 $scope 项目上的范围变量“order”后,我可以执行诸如稍后保存订单之类的操作。我遇到了 $apply 方法,但我不确定如何正确调用它。我是 Angular 新手。任何帮助表示赞赏。

   scope.$apply(function () {
      scope.items[i].order = (i + 1);
   });

请看我的 fiddle http://jsfiddle.net/7c3ff83f/4/

最佳答案

说实话,这有点令人困惑。您应该查看 angularjs ui-draggable,它可以解决所有这些问题。

您当前的问题是 itemElem 和索引之间的映射不正确,

现在,这不是最好的解决方案,但它说明了您遇到的问题:

修改代码为:

                   var index = parseInt($(itemElem)
                  .find('span.TX')
                  .text()); 

                  scope.$apply(function () {
                        scope.items[index].order =i+1;
                  });

并添加 <span class="TX">{{$index}}</span>到项目模板。

http://jsfiddle.net/xzgc9aq7/

关于javascript - AngularJS 从指令更新作用域变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25494145/

相关文章:

javascript - AngularJS 和 Jasmine : isolateScope() is undefined

javascript - 如何从字符串中删除 span 标签?

jquery - 仅在显示占位符文本时更改 jEditable 控件中的字体

javascript - 在javascript中向按钮添加 'data-toggle'属性

jQuery的index()函数返回对象而不是int

angularjs - Kendo treeList 数据源 - 不与远程数据绑定(bind)

javascript - 来自 Web 应用程序的通知 (Android)

javascript - 以编程方式设置多选中的选定选项

javascript - 为什么 Safari 会复制 GET 请求而 Chrome 不会?

javascript - 尝试通过 jQuery click() 单击外部链接来更改一个 div 的 css