Javascript 将数据从子控制器[angularjs]推送到父控制器

Javascript 将数据从子控制器[angularjs]推送到父控制器,javascript,html,angularjs,Javascript,Html,Angularjs,我试图将cities对象推送到父控制器中的数组中。回答是“无法读取未定义的属性‘push’”。怎么解决这个问题 ChildCtrl嵌套在ParentCtrl中 {{从子控制器更新时此处列出的引用} 提交城市 尝试通过$parent访问它 function ChildCtrl($scope) { $scope.$parent.cities.europe.push({ 'barcelona', 'madrid', 'manchester' }); } 尝试通过$parent访问

我试图将cities对象推送到父控制器中的数组中。回答是“无法读取未定义的属性‘push’”。怎么解决这个问题

ChildCtrl嵌套在ParentCtrl中


{{从子控制器更新时此处列出的引用}
提交城市

尝试通过$parent访问它

function ChildCtrl($scope) {
  $scope.$parent.cities.europe.push({
    'barcelona', 'madrid', 'manchester'
  });
}

尝试通过$parent访问它

function ChildCtrl($scope) {
  $scope.$parent.cities.europe.push({
    'barcelona', 'madrid', 'manchester'
  });
}
在代码中:

  function ParentCtrl($scope) {
     $scope.cities = [{
         america: [{
            'alberta', 'NY', 'chicago', 'LA'
         }, {
            'atlanta', 'New town', 'boston', 'boulder'
          }, {
            'dallas', 'austin', 'denver', 'colombus'
          }]
       }, {
          europe: [{
             'london', 'paris', 'Helsinki'
           }, {
         'berlin', 'rome', 'tallin'
         }, {
            'lisbon', 'amsterdam', 'brussels'
        }]
  }];
};
这里,

 $scope.cities[0] = {
         america: [{
            'alberta', 'NY', 'chicago', 'LA'
         }, {
            'atlanta', 'New town', 'boston', 'boulder'
          }, {
            'dallas', 'austin', 'denver', 'colombus'
          }]
       };


  $scope.cities[1] = {
        {
          europe: [{
             'london', 'paris', 'Helsinki'
           }, {
         'berlin', 'rome', 'tallin'
         }, {
            'lisbon', 'amsterdam', 'brussels'
        }]
   };
但在clild控制器中,您使用:

   function ChildCtrl($scope) {
      $scope.cities.europe.push({
         'barcelona', 'madrid', 'manchester'
      });
   }
您可以数据推送到
欧洲
对象中,但是
欧洲
对象在
$scope.cities
中不可用。您可以更改
$scope.cities
,如下所示:

  $scope.cities = {
         america: [{
            'alberta', 'NY', 'chicago', 'LA'
         }, {
            'atlanta', 'New town', 'boston', 'boulder'
          }, {
            'dallas', 'austin', 'denver', 'colombus'
          }], {
          europe: [{
             'london', 'paris', 'Helsinki'
           }, {
              'berlin', 'rome', 'tallin'
           }, {
            'lisbon', 'amsterdam', 'brussels'
          }]
  };
在代码中:

  function ParentCtrl($scope) {
     $scope.cities = [{
         america: [{
            'alberta', 'NY', 'chicago', 'LA'
         }, {
            'atlanta', 'New town', 'boston', 'boulder'
          }, {
            'dallas', 'austin', 'denver', 'colombus'
          }]
       }, {
          europe: [{
             'london', 'paris', 'Helsinki'
           }, {
         'berlin', 'rome', 'tallin'
         }, {
            'lisbon', 'amsterdam', 'brussels'
        }]
  }];
};
这里,

 $scope.cities[0] = {
         america: [{
            'alberta', 'NY', 'chicago', 'LA'
         }, {
            'atlanta', 'New town', 'boston', 'boulder'
          }, {
            'dallas', 'austin', 'denver', 'colombus'
          }]
       };


  $scope.cities[1] = {
        {
          europe: [{
             'london', 'paris', 'Helsinki'
           }, {
         'berlin', 'rome', 'tallin'
         }, {
            'lisbon', 'amsterdam', 'brussels'
        }]
   };
但在clild控制器中,您使用:

   function ChildCtrl($scope) {
      $scope.cities.europe.push({
         'barcelona', 'madrid', 'manchester'
      });
   }
您可以数据推送到
欧洲
对象中,但是
欧洲
对象在
$scope.cities
中不可用。您可以更改
$scope.cities
,如下所示:

  $scope.cities = {
         america: [{
            'alberta', 'NY', 'chicago', 'LA'
         }, {
            'atlanta', 'New town', 'boston', 'boulder'
          }, {
            'dallas', 'austin', 'denver', 'colombus'
          }], {
          europe: [{
             'london', 'paris', 'Helsinki'
           }, {
              'berlin', 'rome', 'tallin'
           }, {
            'lisbon', 'amsterdam', 'brussels'
          }]
  };

两个控制器如何交互(即一个视图嵌套在另一个视图中,从父控制器打开的子模式等)?子视图嵌套在父控制器中。请发布您的标记。了解指令是如何嵌套的,理解$scope的这个属性为什么没有被继承,这一点很重要。我刚刚输入了@joehawkins这句话,已经回答了很多次了。只需搜索控制器之间的通信…两个控制器如何交互(即,一个视图嵌套在另一个视图中,从父控制器打开的子模式等)?子视图嵌套在父视图中。请发布您的标记。了解指令是如何嵌套的,理解$scope的这个属性为什么没有被继承,这一点很重要。我刚刚输入了@joehawkins这句话,已经回答了很多次了。只需搜索控制器之间的通信。。。