Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将controller中的父控制器作为angular中的语法获取_Javascript_Angularjs_Twitter Bootstrap 3_Angularjs Scope_Angular Ui Bootstrap - Fatal编程技术网

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