我遇到了问题,我试图在我的服务中获取控制器实例:
myAppModule.service('modalService',
function ($modal, $controller) {
var controller = $controller('ExperienceDetailsModalCtrl');
});
但我有错误: TypeError:无法读取属性' $ scope'未定义的
是否可以访问控制器(在另一个文件中定义)并将其传递给模态?
我的控制器:
myAppIndexModule
.controller('ExperienceDetailsModalCtrl', function ($scope) {
});
答案 0 :(得分:4)
您无法访问factory
,provider
或$modal
中的控制器范围。您要共享的数据应放在服务中。 &安培;让它可供其他控制器使用。
我认为您确实希望将控制器范围传递给$modal.open({$scope: $controller('ExperienceDetailsModalCtrl', {$scope: $scope}), templateUrl: 'abc.html'})
,然后您可以通过控制器本身来实现此目的。
myAppModule.service('modalService',
function ($modal, $controller, $rootScope) {
var scope = $rootScope.$new(true);
$controller('ExperienceDetailsModalCtrl',{scope: $scope });
//in scope now you will have ExperienceDetailsModalCtrl scope
});
<强>更新强>
你可以像下面这样做
String.valueOf(new Date().getTime())