2016-07-14 3 views
0

В приведенном ниже разделе у меня есть sidenav и раздел основного контента. Я пытаюсь вызвать функцию sidenav от основного контроллера, поэтому число обрывается в сидене. Что я здесь делаю неправильно?Проблемы с обновлением углового обзора с помощью другого контроллера

Это мой взгляд.

<div>Teams {{ teams.length }} </div> 

Это мой боковой панели контроллера:

angular.module('myApp').controller('leftNav', function($scope, myFactory) { 
    myFactory.getTeams().then(function(res) { 
    $scope.teams = res.data; 
    }) 

Это моя фабрика

angular.module('myApp').factory('myFactory', function($http) { 

    return { 
    getTeams : function() { 
     return $http.get('/teams').then(function(res) { 
     return res; 
     }); 
    } 
    }; 
}); 

Это совершенно иной контроллер:

angular.module('myApp').controller('main', function($scope,$http, myFactory) { 
    $http.post(...blablabl..).then(function() { 
     // What can i call here to update the sidenav above? 
    }); 
}); 
+0

взгляд на этот пост: HTTP: // StackOverflow .com/questions/25417162/how-do-i-inject-a-controller-in-another-controller-in-angularjs –

ответ

0

Вы можете использовать $controller сервис для вызова контроллера leftNav из главного контроллера, как показано ниже

angular.module('myApp').controller('main', function($scope,$http, myFactory,$controller) { 
    $http.post(...blablabl..).then(function() { 
     var leftCTRL= $controller('leftNav', { $scope: $scope.$new() }); 
    }); 
}); 
0

вы можете попробовать так:

angular.module('myApp').controller('leftNav', function($scope, myFactory) { 
    myFactory.getTeams().then(function(res) { 
    this.teams = res.data; 
}) 



angular.module('myApp').controller('main', function($scope,$http, $controller) { 
     var leftNav= $controller('leftNav'); 

    $http.post(...blablabl..).then(function(res) { 
     leftNav.teams = res.data; 
    }); 
}); 
+0

данные из сообщения не отражают команды в моем API – KingKongFrog

+0

Я отредактировал коды, не могли бы вы попробовать еще раз? –