我有一个名为" contractController"
的控制器contractController 包含方法 save()
contractController 打开一个模型窗口,控制器名为" PopUpcontroller "
来自 PopUpcontroller 我想在 contractController上调用save方法
尝试调用$parent
之类的保存方法,但没有任何作用。
请建议。
答案 0 :(得分:1)
如果嵌套了两个控制器,那么:
<div ng-controller="contractController">
<div ng-controller="PopUpcontroller">
</div>
</Div>
你可以在popUpController上调用$ scope.save(),它会自动向上找到使用该方法的父级(直到$ rootScope)。
如果它们没有嵌套,你应该使用服务来执行控制器之间的通信
答案 1 :(得分:1)
如果要保留其原型,则需要确保从contractController
的范围创建弹出窗口。你是如何创建弹出窗口的?
Angular UI Boostrap中的类似内容(我不会使用它,但API应该接受它):
$modal.open({
scope: $scope,
/* ... other opts */
});
答案 2 :(得分:1)
如果您正在使用Angular UI Bootstrap(http://angular-ui.github.io/bootstrap/),那么,请使用&#34; resolve&#34;调用$ modal.open()时的属性。
无论你添加什么来解决,如果你把它作为一个依赖注入挂钩,它将是可用的。
在他们页面上的示例中,&#34;项目&#34;可以通过以下方式获得,因为它已连接到&#34;解决&#34;。
消退:
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) {