ng-click需要两次单击才能进行更新

时间:2015-03-04 08:43:08

标签: javascript html css angularjs

我这样打电话给ng-click:

<div ng-repeat="(key,value) in filterdata">
  <div ng-click="filter(key,value)">
    {{key}} ::::::: {{value}}
  </div>
</div>

我的Controller功能如下:

$scope.filter = function(key,value){
  $location.search(key, value);
  var filter = $location.url();
  service.get(filter).success(function(data) {
    $scope.applicationdata = data.data;
    console.log($scope.applicationdata);
  });
}

我的HTML文件有ng-repeat,如下所示:

<div class="resultsa" ng-repeat="data in applicationdata">
        {{data.name}}<hr>
        <div ng-repeat="metadata in data.metadata">
          {{metadata.name}}&nbsp;&nbsp;,&nbsp;&nbsp;{{metadata.pivot.value}}
          <hr>
        </div>
      </div>

我第一次点击,我的服务功能被调用,我的模型被更新,但我的视图没有更新。当我第二次点击时,我的视图会正确更新。谁能告诉我为什么会这样呢?

1 个答案:

答案 0 :(得分:1)

这是因为您在触发摘要cicle之后以及在不同的上下文中更改模型的值。要解决此问题,您需要在设置应用程序数据后调用$ scope。$ apply(),以触发另一个摘要周期。