2016-02-11 4 views
0

У меня есть массив, который, в основном, подмножество другого массива:Binding не будет обновляться при изменении объектов

$scope.theFew = $scope.theMany.filter(function(obj, index, array) { 
    return obj.IsVerySpecial; 
}); 

В другом месте в моем контроллере, у меня есть некоторые функции, которые действуют на theMany массива, изменение IsVerySpecial Недвижимость.

Я бы ожидал, что $scope.theFew будет обновлен, если объекты в пределах $scope.theMany изменятся, но это не так. Что происходит?

+0

Как обновляются элементы в $ scope.theMany? – lintmouse

ответ

0

Быстрое открытие на этом, но оно сработало. Чтобы быть справедливым, это был какой-то старый код;)

Код должен вместо чтения:

$scope.theFew = function() { 
    return $scope.theMany.filter(function(obj, index, array) { 
    return obj.IsVerySpecial; 
    }); 
} 
0

У меня тоже был подобный вопрос. Я использовал $ watch для обновления переменных области. Не уверен, что это лучший способ.

controller: ['$scope', function($scope) { 
     updateVisualData(); 

     $scope.$watch("data", function(newData) { 
      console.log("new Data in paContent"); 
      console.log(newData); 
      updateVisualData(); 
     }, true); 

     function updateVisualData() { 
      var contentData = $scope.data.components && $scope.data.components.filter(function(item) { 
       return item.type === "Layout"; 
      }); 
      if (contentData && contentData.length > 0) { 
       contentData = contentData[0]; 
       $scope.graphType = contentData.graph.type; 
       $scope.graphData = contentData.graph.graphData; 
       ----- 
      } 
     } 
    }]