我的代碼有些問題。我無法在我的數據服務中傳遞或console.log繼承的$ scope.user。由於我在另一種看起來相同的情況下也遇到了這個問題,我想這是因爲回調。
主控制器創建用戶
.controller('mainCtrl', function ($scope, dataService) {
dataService.getUser(function (response) {
$scope.user = response.data[0];
})
DataService在
導航控制器(mainCtrl的孩子):
.controller('navCtrl', function ($scope, dataService) {
//$scope.user = "test";
console.log ($scope.user);
dataService.getNavItems($scope.user,function (response) {
$scope.navItems = response.data;
});
正如你所想,如果我手動設置$ scope.user它工作得很好。
對不起,我不明白你的意思*從$ http.get返回承諾,而不是直接在回調中設置scope.user。然後,將調用包裝到promise中。getNavItems *您的意思是我應該返回$ http.get值? – GruberEDU
爲答案增加了一個例子;請注意,在getUser中,我們返回$ http.get的結果,這將是一個承諾。在mainCtrl中,您只需在範圍和navCtrl中設置承諾,您只需在範圍內設置的承諾對象的上下文中操作。 – willz
好吧,它的工作原理。但是我如何將$ scope.user保存在主控制器中,因爲我需要所有子控制器中的* user *。 – GruberEDU