如何调用从模型控制器父类的方法

问题描述:

我有一个控制器名为“contractController”如何调用从模型控制器父类的方法

contractController包含方法保存()

contractController打开与控制器的一个示范窗口命名为“PopUpcontroller

from PopUpcontroller i想打电话保存方法contractController

试图调用像$parent保存方法,但没有任何工作。

请指教。

如果您使用的角度引导用户界面(http://angular-ui.github.io/bootstrap/),然后,使用的当您调用$ modal.open()时,请使用“resolve”属性。

无论您添加什么解决方案,如果您将其作为依赖项注入进行挂接,都将可用。

在他们页面上的例子中,“item”可用于下面,因为它被连接在“resolve”中。

解析:

var modalInstance = $modal.open({ 
    templateUrl: 'myModalContent.html', 
    controller: 'ModalInstanceCtrl', 
    size: size, 
    resolve: { 
    items: function() { 
     return $scope.items; 
    } 
    } 
}); 

用途:

angular.module('ui.bootstrap.demo').controller('ModalInstanceCtrl', function ($scope, $modalInstance, items) { 

如果两个控制器嵌套使:

<div ng-controller="contractController"> 
    <div ng-controller="PopUpcontroller"> 
    </div> 
</Div> 

你可以在popUpController调用$ scope.save(),它会自动上升到找到与该方法的父(直到$ rootScope )。

,如果他们没有嵌套,你应该使用的服务,以便执行控制器

你需要确保,如果你想保留它的原型弹出从contractController的范围内创建之间的沟通。你如何创建弹出窗口?

像这样的事情在角UI自举(我不使用它,但API应该接受它):

$modal.open({ 
    scope: $scope, 
    /* ... other opts */ 
}); 
+0

功能PopUpcontroller($范围,$ rootScope,$模式,认证介绍,contractService){ ... PopUpcontroller $注入= [” $ scope','$ rootScope','$ modal','authen','contractService']; – nidhin 2014-11-04 11:29:13

+0

看起来你使用的是Angular UI Bootstrap的'$ modal',对吗?您需要将您的控制器的范围传递到其“范围”选项。 – 2014-11-04 11:36:31