簡體   English   中英

angularjs調用另一個控制器的功能

[英]angularjs call another controller's function

我有一個包含以下ons-items的ons-list:

<ons-list-item style="font-family:roboto;font-size:17px" ng-class="{'selected-menu':selectedRow==0,'no-selected':selectedRow!=0}"
        modifier="tappable" class="list__item__line-height"
        onclick="app.slidingMenu.setMainPage('principal.html', {closeMenu: true})"
        ng-click="principal(0)">
        <i class="fa fa-home fa-lg"></i>
        &nbsp;Principal
</ons-list-item>

<ons-list-item style="font-family:roboto;font-size:17px" ng-class="{'selected-menu':selectedRow==1,'no-selected':selectedRow!=1}"
        modifier="tappable" class="list__item__line-height"
        onclick="app.navi.pushPage('ingreso.html', { animation : 'slide' } );app.slidingMenu.closeMenu()"
        ng-click="principal(1)">
        <i class="fa fa-car fa-md"></i>
        &nbsp;Nuevo Registro
</ons-list-item>

等等...

並且我有一個稱為principal()的函數,它的作用是更改“ $ scope.selectedRow”,以便該項目更改類。 我需要訪問該函數,以便可以從另一個控制器更改類,已經檢查了其他問題的一些答案,但是我無法正確完成操作,有沒有辦法做到這一點?

這是我的Principal()函數:

$scope.principal = function(item){
    $scope.selectedRow = item;
}

在正在使用的控制器中添加功能。 而不是像這樣給按鈕一個ng-click

ng-click="principal(item)"

正如SSH所建議的那樣,我最終使用廣播,因此功勞歸功於他,我所做的是:

聲明我的控制器,例如:

module.controller('Ingreso', ['$scope','$rootScope',function($scope,$rootScope){

在其中廣播事件:

$rootScope.$broadcast("ingresing");

並從菜單控制器(相同的聲明):

module.controller('Principal', ['$scope','$rootScope', function($scope,$rootScope) {

並收聽廣播節目:

$rootScope.$on("ingresing", function(){
    $scope.selectedRow = 1;
}); 

非常感謝你的幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM