Dav*_*ell 3 angularjs angularjs-controller
我有一个嵌套在另一个控制器中的控制器。
<div ng-controller="manufacturerController" ng-cloak>
<div ng-controller="contractController" ng-cloak>
<div data-ng-if="item" class="panel panel-default">
<div class="panel-heading text-center">
<span class="h3">Contract</span>
</div>
</div>
</div>
<button data-ng-if="item && !ajaxOut" class="btn btn-success" data-ng-click="saveItem()">Save</button>
</div>
Run Code Online (Sandbox Code Playgroud)
saveItem() 通过按钮调用,代码在制造商控制器中:
$scope.saveItem = function () {
$scope.ajaxOut = true;
$scope.saveContracts();
};
Run Code Online (Sandbox Code Playgroud)
但是函数 saveContracts() 在 contractController 中。我想从manufacturerController.saveItem() 调用contractController.saveContracts()。
根据这里我应该能够很好地调用父方法:How to call a function from another controller in angularjs?
但是保存会冻结浏览器。我做错了什么,我该如何解决?
一种方法是在范围内广播事件:
function ParentController($scope)
{
$scope.$broadcast('someEvent', args);
}
function ChildController($scope)
{
$scope.$on('someEvent', function(event, args) {});
// another controller or even directive
}
Run Code Online (Sandbox Code Playgroud)
范围事件传播
有关更多信息,请参阅一个控制器可以调用另一个控制器吗?
| 归档时间: |
|
| 查看次数: |
2615 次 |
| 最近记录: |