Angularjs 在子对象中调用父对象的控制器方法
我想从继承的控制器中获取$scope变量值。它适用于非范围变量,但范围变量打印未定义Angularjs 在子对象中调用父对象的控制器方法,angularjs,Angularjs,我想从继承的控制器中获取$scope变量值。它适用于非范围变量,但范围变量打印未定义 appControllers.controller('parentCtrl', ['$scope', '$rootScope', '$http', '$location', '$log', function ($scope, $rootScope, $http, $location, $log) { $scope.someVariable = "Scope hello world.";
appControllers.controller('parentCtrl', ['$scope', '$rootScope', '$http', '$location', '$log',
function ($scope, $rootScope, $http, $location, $log) {
$scope.someVariable = "Scope hello world.";
$scope.getLocalVariable = function (){
return "hello world";
}
$scope.getScopeVariable = function (){
return $scope.someVariable;
}
}]);
appControllers.controller('childCtrl', ['$scope', '$rootScope', '$http', '$location', '$log',
function ($scope, $rootScope, $http, $location, $log) {
$log.debug($scope.getLocalVariable()); // this WORKS
$log.debug($scope.getScopeVariable()); // this DOES NOT WORKS - prints undefined
}]);
.html文件的一部分
<div ng-controller="parentCtrl">
<div ng-controller="childCtrl">
</div>
</div>
但这没有帮助。谢谢您应该在$scope中定义父控制器中的所有函数。那你就没有问题了$scope.getScopeVariable=function…抱歉,我从代码中间接复制了它。当然,我使用$scope.getScopeVariable=函数。我已经编辑了问题代码。所以,你的建议无效。我使用的是Angular 1.2。28@jiri463尝试angular 1.3的最新稳定版本。在1.2.28中,您的代码也可以让meSeems正常工作-您可以创建一个plunker并复制吗?下面是一个代码正常工作的示例:
var app = angular.module('angularjs-starter', []);
app.controller('ParentCtrl ', function($scope) {
// I'm the sibling, but want to act as parent
});
app.controller('ChildCtrl', function($scope, $controller) {
var ctrl = $controller('ParentCtrl', {$scope: $scope});
ctrl.methodCall() // DOES NOT WORK
});