2017-01-08 16 views
4

我在NG重复不更新列表当阵列变化的问题。AngularJS NG重复不刷新的阵列更新

我使用JavaScript承诺计算计算然后返回含有2个阵列的对象。这些数组然后将显示在下面的代码片段的视图上。

<button class="btn" data-toggle="modal" data-target="#tableModal" ng-click="vm.compareTables(vm.table)">Some text</button> 
<!-- Modal --> 
<div class="modal fade" id="tableModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> 
    <div class="modal-dialog" role="document"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
       <h4 class="modal-title" id="myModalLabel">{{ vm.table.title}}</h4> 
      </div> 
      <div class="modal-body"> 
       <h4>You got</h4> 
       <p ng-repeat="g in vm.got">{{ g }}</p> 
       <h4>You dont:</h4> 
       <p ng-repeat="d in vm.dont">{{ d }}</p> 
      </div> 
     </div> 
    </div> 
</div> 

在控制器中,我将一个函数包装在承诺中,并且它返回2个填充数组的正确答案。我也可以在控制器中打印结果,ng-repeat只是不更新​​视图。

var vm = this; 

vm.compareTables = function (table) { 
    getData().then(function succesCallback(response) { 
     vm.ing = response.data; 
     var r = table; 
     var promise = pro(r, vm.ing); 
     promise.then(function (data) { 
      console.log(data.got); 
      console.log(data); 
      vm.got = data.got; 
      vm.dont = data.dont; 
     }); 
    }); 
} 

上面的承诺返回正确的结果。

我采用了棱角分明1.6.1是否有帮助。控制器和视图连接到一个工作正常的组件。

UPDATE

这里是控制台输出的承诺回报 Console output

+0

有你**控制台**数据吗?你是否获取数据? –

+0

@AvneshShakya是的,我添加了一个控制台输出的图像。无法向您显示数据,但有数组大小。 – McBoman

+0

什么是“专业”功能? – tasseKATT

回答

1

包装你vm.got = .. in a $scope.$apply(function() { ... })强制digest cycle。角可能是不知道你的诺言回调,因为你可能比使用原生角的人($http$q$resource)不同promise/callback机制。

+0

当把它包装在一个$应用程序中时,我得到一个摘要循环已经在进行中。 – McBoman

+0

你确定它在你的js和你的html相同的控制器? – Noppey

+0

使用本机承诺/回调机制($ http,$ q,$资源)为我做了诡计。 谢谢。 – GoldenAxe

0

使用

$timeout(function() { 
    vm.got = data.got; 
    vm.dont = data.dont; 
}) 
0

我希望这可以帮助你。请参阅此链接,如果不清楚,请观看本链接末尾给出的视频。 solve problem of ng-repeat当你需要使用$范围的角度范围内的出

+0

抱歉没有工作 – McBoman

0

。$适用于承诺回调()方法来更新您的视图。

+0

这给出$ apply已经处理的错误。 – McBoman