我在AngularJS中有以下含糊之处。 我正在使用AngularJS ui Modal并提供 关于这个模态的控制器。从这个控制器 我想从其他范围访问变量。什么是 这是一个有角度的方式吗?这是我的代码:
controllers.controller('ResultCtrl', ['$scope', '$routeParams', '$http', '$q', 'Matches', '$modal',
function ($scope, $routeParams, $http, $q, Matches, $modal) {
/**
* other code
*
* from this scope i can access
* $scope.terms
*/
$scope.mergeTerms = function() {
var ModalInstanceCtrl = function ($scope, $modalInstance) {
/**
* Here I want to access
* $scope.terms as a above
* function
*/
}
}
});
祝你好运。
答案 0 :(得分:1)
如果您确定,您的ModalInstanceCtrl
控制器将始终位于ResultCtrl
内,您可以使用$scope.$parent.terms
,但情况可能并非总是如此。
使用Angular-ui模态时,您可以传递可以注入模态控制器的对象:
$scope.modalInstance = $modal.open({
templateUrl: 'modal.html',
controller: 'ModalInstanceCtrl',
resolve: {
terms: function() {
return $scope.terms;
}
}
});
通过这样做,您可以简单地将术语注入控制器:
var ModalInstanceCtrl = function ($scope, $modalInstance, terms) {
$scope.terms = terms;
/**
* Here I can access $scope.terms in terms
* which was injected into this controller
*/
}
答案 1 :(得分:1)
您需要将其传递到模态实例控制器,以便它可以在自己的范围内解决它。像这样:
var modalInstance = $modal.open({
resolve: {
terms: function () {
return $scope.terms;
}
}
});