从外部控制器到内部控制器的广播不起作用

时间:2017-03-03 17:24:23

标签: angularjs broadcast

在我的AngularJS应用程序中有2个控制器:ExternalCtrlLoginModalCtrl

ExternalCtrl constains LoginModalCtrlExternalCtrl broadcast所有LoginModalCtrl方法给app.controller('LoginModalCtrl', ['$scope', '$uibModal', function($scope, $uibModal) { var $ctrl = this; $ctrl.modalInstance = null; $ctrl.animationsEnabled = true; $ctrl.open = function(size, parentSelector) { var parentElem = parentSelector ? angular.element($document[0].querySelector('.modal-login' + parentSelector)) : undefined; $ctrl.modalInstance = $uibModal.open({ animation: $ctrl.animationsEnabled, ariaLabelledBy: 'modal-header', ariaDescribedBy: 'modal-body', templateUrl: 'loginModalContent.html', controller: 'LoginModal2Ctrl', controllerAs: '$ctrl', backdropClass: "modal-backdrop", size: size, backdrop: true, appendTo: parentElem, resolve: { items: function() { return $ctrl.items; } } }); }; $ctrl.scope = $scope; $scope.$on('$showLoginWindow', function(event, args) { //$ctrl.open(); console.log('on showLoginWindow ...'); }); }]); 提供信号以显示模态,但它不起作用。我的代码附在下面。

为什么$ scope。$ on方法未启动?

Controller LoginModalCtrl

'use strict';
app.controller('ExternalCtrl', ['$scope', '$location', 'authenticationService',
    function($scope, $location, authenticationService) {


        $scope.logout = function() {
            authenticationService.logOut();
            $location.path('/');
        };

        $scope.authentication = authenticationService.authentication;

        $scope.$broadcast('$showLoginWindow');
        console.log('broadcasting showLoginWindow ...');
    }
]);

Controller ExternalCtrl

Initializing ExternalCtrl ExternalCtrl.js:14 
broadcasting showLoginWindow ... 
... 
LoginModalCtrl.js:2 Initializing LoginModalCtrl

UPDATE1: 我将该行添加为每个控制器的第一行:"初始化XXXCtrl"。

现在,当页面启动时,我在控制台中看到以下消息:

public function index()
{
    $pastors = Pastor::all();
    $churchdetails = Church::all()->pluck('church_name','church_address');
    return view('addpastor')->withpastors($pastors)->withchurchdetails($churchdetails);
}   

public function create()
{
   return view('addpastor');
}

public function store(Request $request)
{
    //validation input
    $this->validate($request, [
        'pastor_name' => 'required|max:100',
    ]);

    $pastors = New Pastor;
    $pastors->pastor_name = $request->pastor_name;

    $pastors->save();

    return redirect()->back();
}

0 个答案:

没有答案