我试图将city对象推送到父控制器中的数组。回复是“无法读取未定义的属性'推送”。无论如何要解决这个问题?
ChildCtrl嵌套在ParentCtrl中。
<!DOCTYPE html>
<html lang="en" ng-app="citieApp">
<body>
<div class="container">
<div ng-controller="ParentCtrl">
{{cites to be listed here ON UPDATE from the child controller}}
<div ng-controller="ChildCtrl">
<form>
<!--This inputs are to insert cities-->
<input type="text">
<input type="text">
<input type="text">
<button>Submit Cities</button>
</form>
</div>
</div>
</div>
</body>
</html>
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'
}]
}];
};
function ChildCtrl($scope) {
$scope.cities.europe.push({
'barcelona', 'madrid', 'manchester'
});
}
我试图将city对象推送到父控制器中的数组。回复是“无法读取未定义的属性'推送”。无论如何要解决这个问题?
答案 0 :(得分:0)
尝试通过$ parent访问它。
function ChildCtrl($scope) {
$scope.$parent.cities.europe.push({
'barcelona', 'madrid', 'manchester'
});
}
答案 1 :(得分:0)
在您的代码中:
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'
});
}
您将数据推送到europe
对象,但europe
中没有$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'
}]
};