AngularJS从指令更新范围变量

时间:2014-08-25 20:49:17

标签: javascript jquery angularjs packery

我正在使用angularpackery中的小部件面板。

我想要做的是在将元素拖到范围变量' order'之后绑定由packery设置的顺序。在我的$ scope项目上,所以我可以做以后保存订单的事情。我遇到了$ apply方法,但我不确定如何正确调用它。我是棱角分明的新手。任何帮助表示赞赏。

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

请看我的小提琴 http://jsfiddle.net/7c3ff83f/4/

1 个答案:

答案 0 :(得分:1)

说实话,它有点令人困惑。你应该检查出可以解决所有问题的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/