从控制器中的服务器获取数据并与其他控制器共享以更新AngularJS中的视图

时间:2017-04-17 10:44:02

标签: angularjs angular-ngmodel

我有一个复杂的应用程序,需要从服务器检索的数据更新视图。

首先,我在名为“EditController”的控制器中检索数据:

self.loadIndividualData = function(individual){
   this.srchByID.classById().get({_id: individual.id_class}, 
        function(res){
            auxiliarVariables.instanceClass = angular.copy(res);
        });}

我使用ngResource进行通话。变量“auxiliarVariables”是一种可以在不同控制器之间共享数据的服务。那么,我在另一个名为“individualController”的控制器中有以下代码:

self.instanceClass = auxiliarVariables.instanceClass;

最后,在视图中:

<ul class="list-group">
  <li class="list-group-item class">
    <span ng-repeat="classId in VIndividualCtrl.instanceClass.ids">
      {{classId}}
    </span>
  </li>
</ul>

我发现的问题是当变量“instanceClass”发生变化时,视图不会刷新。因此,当检索加载视图的数据(它是模态)需要更长时间时,不显示变量。

如果我将“auxiliarVariables.instanceClass”发起到一个数组,然后我在get调用中使用方法push,那么它可以完美地工作。它看起来像是:

 self.loadIndividualData = function(individual){
       this.srchByID.classById().get({_id: individual.id_class}, 
            function(res){
                auxiliarVariables.instanceClass.push(res);
            });
 }

问题是我不希望这个变量是一个数组。还有其他解决方案吗?

0 个答案:

没有答案