2016-04-11 8 views
0

У меня есть список ONS-со следующим ONS-элементами:angularjs вызвать функцию другого контроллера

<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> 

и т.д ...

и у меня есть функция, называемая основной(), что она делает это измените «$ scope.selectedRow», чтобы элемент менял классы. Мне нужно получить доступ к этой функции, чтобы я мог изменить класс с другого контроллера, я проверял некоторые ответы от других вопросов, но я не смог сделать это правильно, есть ли способ это сделать?

это моя функция основной():

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

Вы можете использовать функцию широковещания и испускания для этого –

ответ

0

Как предложено SSH я закончил с использованием трансляции и поэтому кредит идет к нему, что я сделал:

объявить мой контроллер, как:

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

внутри него трансляции событие:

$rootScope.$broadcast("ingresing"); 

и из меню с ontroller (такое же заявление):

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

и слушать briadcasted события:

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

Большое спасибо за помощь!

0

добавить функцию в контроллере, который вы используете. И чем дать кнопку на нг щелкните как этот

ng-click="principal(item)" 
+0

Ну ... да, если вы видите код, который я вставил, вы можете видеть, что я уже использую это, но для доступа к тому же контроллеру я должен быть способен для вызова его с другого контроллера. В любом случае, я закончил использовать трансляцию и дальше, как было предложено SSH в комментарии, спасибо за комментарий! –