2016-07-25 82 views
0

這裏我添加了categoryCtrl和ProductCtrl。此代碼行console.log(category);工作正常。如何使用for循環或其他方式爲產品控制器綁定此數據。如何設置第一個控制器數據的另一個控制器

.controller('CategoryCtrl', function($scope, $http) { 
    var vm = this; 

    vm.playlists = {}; 

    $http.get("http://localhost/youtubewebservice/shop-categorylist-product.php").then(function(response) { 
     vm.playlists = response.data.category; 
     console.log(response.data.category); 
    }); 


    $scope.selectedJsonObject=function(category){ 
     console.log(category); 
    } 

}) 
.controller('productCtrl', function($scope, $stateParams) { 

}); 
+1

創建一個'服務',它將負責在角度組件之間共享數據。 –

回答

0
$scope.selectedJsonObject=function(category){ 
    console.log(category); 
$scope.$emit('eventName', { message: category}); 
} 

,並在您productctrl 使用

.controller('productCtrl', function($scope, $stateParams) { 
$scope.$on('eventName', function (event, args) { 


$scope.message = args.message; 
console.log($scope.message);}); 
}); 
+1

通過您的應用程序實現此目的,創建服務更加乾淨,可測試且可重複使用的解決方案,然後是傳播事件。 –

+0

也許你是對的,但它是更有效和簡單的方法,此外,$和$廣播也是可測試的。 –

+0

在哪裏添加這些代碼我的朋友...? – moni123

1

你可以通過使用工廠

<!doctype html> 
<html ng-app="project"> 
<head> 
    <title>Angular: Service example</title> 
    <script src="https://code.angularjs.org/angular-1.0.1.js"></script> 
    <script> 
var projectModule = angular.module('project',[]); 
projectModule.factory('theService', function() { 
    var data ={} 
    data.x ={} 
    return data; 
}); 
function FirstCtrl($scope, theService) { 
    console.log(theService) 

    $scope.name = "First Controller datas"; 
    theService.x = $scope.name ; 
} 
function SecondCtrl($scope, theService) { 
    $scope.someThing = theService.x; 
} 
    </script> 
</head> 
<body> 
    <div ng-controller="FirstCtrl"> 
     <h2>{{name}}</h2> 
    </div> 

    <div ng-controller="SecondCtrl"> 
     <h2> Second Controller recives {{someThing}}</h2> 
    </div> 
</body> 
</html> 
DATAS要麼Rootscope工廠或服務

JS

+0

如何在我的項目中添加這些示例我的朋友 – moni123

0

我修復你的代碼,使用服務應該是一個正確的解決方案。

.controller('CategoryCtrl', function($scope, myService) { 
    var vm = this; 
    vm.playlists = myService.playList;  
    $scope.selectedJsonObject=function(category){ 
     console.log(category); 
    } 

}) 
.controller('productCtrl', function($scope, $stateParams, myService) { 
    this.playlists = myService.playList; 
}); 

.service('myService', function($http){ 
    var playlist = {}; 
    $http.get("http://localhost/youtubewebservice/shop-categorylist-product.php").then(function(response) { 
     playlist = response.data.category; 
     console.log(response.data.category); 
    }); 

    this.playList = function(){ 
    return playList; 
    } 

}); 
+0

此代碼現在正常工作我的朋友... – moni123

+0

'無法找到變量:$ http'會在控制檯中顯示此錯誤我的朋友 – moni123

+0

我必須添加這個服務文件單獨或在同一個控制器我的朋友 – moni123

相關問題