angularjs 调用另一个控制器的函数
angularjs call another controller's function
我有一个列表,其中包含以下项目:
<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>
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>
Nuevo Registro
</ons-list-item>
等...
我有一个名为 principal() 的函数,它所做的是更改“$scope.selectedRow”,因此项目更改 classes。我需要访问该功能,以便我可以从另一个控制器更改 class,我已经检查了其他问题的一些答案,但我无法正确地做到这一点,有没有办法完成这个?
这是我的 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;
});
非常感谢您的帮助!
我有一个列表,其中包含以下项目:
<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>
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>
Nuevo Registro
</ons-list-item>
等...
我有一个名为 principal() 的函数,它所做的是更改“$scope.selectedRow”,因此项目更改 classes。我需要访问该功能,以便我可以从另一个控制器更改 class,我已经检查了其他问题的一些答案,但我无法正确地做到这一点,有没有办法完成这个?
这是我的 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;
});
非常感谢您的帮助!