【问题标题】:AngularJS is it possible to watch changes in ng-repeat?AngularJS 是否可以观察 ng-repeat 的变化?
【发布时间】:2015-04-15 08:24:49
【问题描述】:

是否可以从每 5 秒更新一次的外部 JSON 文件中突出显示使用 ng-repeat 生成的值的变化。 $interval

这是控制器:

app.controller('main', function($scope,$http,$interval,$routeParams){
  $scope.pageParam = $routeParams.pageParam;

  function getJSON(){
    var url = "json.php";
    $http.get(url)
        .success(function(data){
            $scope.matches    = data;
            console.log(data);
        })
        .error(function(data) {
            console.log('Error');
        });
  }; 
  getJSON();
  $interval(getJSON,5000);

});

在 HTML 中,我使用 ng-repeat 打印 $scope.matches 中的数据,如果我打印的某些数据在 $scope.matches 中发生更改,我希望它被突出显示。

<div class="col-xs-4 odd">{{ match.odds }}</div>

所以如果 match.odds 是 5.6,并且在下一个间隔变为 5.9,我想改变颜色。

Sample of the JSON file

【问题讨论】:

    标签: json angularjs ng-repeat


    【解决方案1】:

    是的

    $scope.$watchCollection(matches, function(newMatches, oldMatches){...});
    

    【讨论】:

    • 我同意,但请在以后为这些简短的答案提供一些解释。
    • 它没有多大帮助,我需要通过 ID 比较,一些具有 id+type 的属性,我需要查看该属性示例:13245+field1;13245+field2 希望你理解我
    • 如果您想观察matches 数组的变化,可以这样做。 getJSON() 将数组替换为新数组,因此您必须 $watch 整个数组以进行更改。在不添加任何 JS 的情况下,可能有一种方法可以通过将 track by 表达式添加到您的 ng-repeat(以防止每个 DOM 元素重新渲染)然后使用 css 为更改设置动画(不完全确定该部分)来为更改设置动画.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 2012-07-09
    • 1970-01-01
    相关资源
    最近更新 更多