使用$ http时的ng-dupes

时间:2015-04-06 10:33:19

标签: angularjs service

我试图以一种简单的方式解释我的复杂问题,所以我做了一些不会影响问题的假设,我有一个服务和一个控制器,我用来从json文件中获取数据,如此

app.service('getDataService', function($http) {
      var promise = $http({method: 'GET',url:'js/d.json'}).success(function (result) {
              var userInfo = result.data;
              return userInfo;
            });
          return promise;
      });


app.controller("someCtrl",["$scope","$http","$compile","$window","$document","getDataService", function($scope,$http,$compile,$window,$document,getDataService) {
  $scope.create = function() {
        getDataService.then(function(result) {
           $scope.data = [];
           $scope.data = result.data;
        }
        angular.element(document.getElementById("tab")).append($compile("<cust-dir cust-data=\"data\">");
  }
}]);

我的HTML视图就像这样

<div ng-controller = "someCtrl">
    <button ng-click = create()>Button</button>
    <div id = "tab"></div>

</div>

如果cust-dir是我传递的自定义指令&#34;数据&#34;并且假设在单击按钮时打开了一个小部件,其中我使用$ compile动态地附加了cust-dir。 当我第一次打开小部件时,每件事情都工作得很好但如果我关闭小部件并尝试打开它,下次我收到错误的&#34; ng-dupes&#34;, 这是由我使用ng-repeat在页面上显示数据的cust-dir模板产生的,我尝试使用&#34; track by&#34;但它显示重复数据,我认为这是与$ http相关的问题,当我第二次打开小部件时,它会添加重复数据。我上周一直在讨论这个问题。请帮我解决这个问题。

0 个答案:

没有答案