Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组中angularjs对象上没有$$hashKey_Javascript_Angularjs_Dom - Fatal编程技术网

Javascript 数组中angularjs对象上没有$$hashKey

Javascript 数组中angularjs对象上没有$$hashKey,javascript,angularjs,dom,Javascript,Angularjs,Dom,CreateCtrl中的$scope.create和链接到DOM的ListCtrl中的$scope.list 由于某些原因,$$hashKey未添加到所有对象。最后一个物体没有他。也就是说,如果我添加了3项,第三项减去$$hashkey(如果添加了另一项),则第三项显示为hashkey$$,第四项不显示 由于此错误,出现错误:[ngRepeat:dups] 按$index跟踪不提供。然后排序停止工作 app.controller('CreateCtrl', function ($scope) {

CreateCtrl中的$scope.create和链接到DOM的ListCtrl中的$scope.list 由于某些原因,$$hashKey未添加到所有对象。最后一个物体没有他。也就是说,如果我添加了3项,第三项减去$$hashkey(如果添加了另一项),则第三项显示为hashkey$$,第四项不显示

由于此错误,出现错误:[ngRepeat:dups]

按$index跟踪不提供。然后排序停止工作

app.controller('CreateCtrl', function ($scope) {
   $scope.create = {a:1, b:2, c:3};
   $scope.send = function () {
      $scope.$emit('send', angular.copy($scope.create));
   }
});

app.controller('ListCtrl', function ($scope, $rootScope) {
   $scope.list = [];
   $rootScope.$on('send', function (e, data) {
      $scope.list.push(data);
   });
});

您将传递一个包含三个元素的javascript对象{},然后将整个对象推送到$scope.list的第一个索引中


您的值位于data.a、data.b和data.c

一件事,如果您的ListCtrl是CreateCtrl的子项,那么您应该使用$scope.$broadcast,然后是$scope.$on,这样您就不需要将$rootScope注入ListCtrl.ListCtrl中。没有CreateCtrlNo的子项,我的$scope.list应该是:$scope.list=[{a:1,b:2,c:3},{a:1,b:2,c:3},{a:1,b:2,b:3}]只有$$hashKey,而不是$$hashKey的最后一个元素,我的问题是数组看起来像这样:$scope.list=[{$$hashKey:'aa',a:1,b:2,c:3},{$$hashKey:'bb',a:1,b:2,c:3},{a:1,b:2,c:3}]后一个元素从来都不是$$hashKey我认为$$hashKey是由ngRepeat创建/添加的,可能需要使用$scope强制生成$digest。$apply
$rootScope.$on('send',function(e,data){
    angular.forEach(data,function(value,key){
        $scope.list.push(value); // or $scope.list[key] = value;
    });
});