Javascript 如何将controller中的父控制器作为angular中的语法获取
我正在使用像这样的角度引导模式Javascript 如何将controller中的父控制器作为angular中的语法获取,javascript,angularjs,twitter-bootstrap-3,angularjs-scope,angular-ui-bootstrap,Javascript,Angularjs,Twitter Bootstrap 3,Angularjs Scope,Angular Ui Bootstrap,我正在使用像这样的角度引导模式 var myModal = $modal.open({ controller: 'MyUpdateController as muc', templateUrl: 'views/create_form.html', 现在,我的父控制器是作为PC的父控制器 我想知道如何访问PC内部muc或内部create\u form模板您始终可以从各自的作用域访问控制器别名,或通过继承继承继承其子体(别名作为属性名附加在作用域上,其值包含控
var myModal = $modal.open({
controller: 'MyUpdateController as muc',
templateUrl: 'views/create_form.html',
现在,我的父控制器是作为PC的父控制器
我想知道如何访问
PC
内部muc
或内部create\u form
模板您始终可以从各自的作用域访问控制器别名,或通过继承继承继承其子体(别名作为属性名附加在作用域上,其值包含控制器实例的引用)。angular ui modal采用scope属性,您可以使用该属性将模态设置为特定范围(否则默认为rootScope)。因此,在模式中设置scope属性
$modal.open({
controller: 'MyUpdateController as muc',
templateUrl: 'views/create_form.html',
//Create a child scope of current scope or even pass the current $scope itself but be aware
scope:$scope.$new()
将$scope
注入控制器(MyUpdateController
)并作为$scope.PC
访问父范围,您也可以在模板中访问此别名
另一种方法可能是使用模态的resolve
属性并将当前父范围传递给它
$modal.open({
controller: 'MyUpdateController as muc',
templateUrl: 'views/create_form.html',
resolve: {
parentCtrl: function(){
return ctrl; //return controller here
}
}
然后将
parentCtrl
作为依赖项注入到您的MyUpdateController
中,并获取它并将其设置在作用域上。谢谢,但我没有得到返回ctrl
将是什么ctrl
here@user3214546它可以只是你的控制器(我假设它可以访问PC或它是PC)。我只是使用了一个变量,就是它,因为你不能在那里传递this
,你需要把它缓存在外面。因此,更像是在您当前的控制器中执行var vm=this
为了避免这个
上下文访问权限问题(除非使用typescript),在这种情况下,ctrl是vm。你的意思是,如果我有vm=this
,那么我可以返回vm
。是这样的吗scope:scope
或者甚至scope:scope.$new()
应该可以用,试试看谢谢,这很有效,我必须使用scope:$scope