1
我需要顯示在我從$ NG重複指令的更新的結果有一定的幫助觀看
- ProductsCtrl是看產品類型的變化,當它檢測到一個它搜索該類型的產品時。
- 這肯定會檢測到產品類型更改,並且我從updateProducts函數獲取結果,但是我找不到返回的產品。
- 我認爲將$ scope.productService.products映射到ProductService.products意味着它會自動更新。
我錯過了什麼嗎?
謝謝。
controllers.js
.controller('ProductsCtrl',['$scope','ProductService', '$location', 'SessionDataService', function($scope, ProductService, $location, SessionDataService){
$scope.productService = ProductService;
$scope.productService.products = ProductService.products;
$scope.sessionDataService = SessionDataService;
$scope.productType = SessionDataService.productType;
$scope.$watch('productType', function(productTypeNew, productTypeOld){
//update products
console.log('ProductsCtrl: watch : New Val - '+ productTypeNew + ', Old Val - ' + productTypeOld);
$scope.productService.updateProducts(productTypeNew);
console.log("ProductsCtrl: watch : Products retrieved - " + $scope.productService.products);
}, true);
}]);
services.js
.factory('Product',['$resource', function($resource){
return $resource('/products/:id', {
id: '@id'
});
}])
.factory('ProductService', ['Product', function(Product){
var products = [];
function updateProducts(productType){
console.log("ProductService updateProducts with product type " + productType);
Product.query({product_type: productType},
function (data) {
console.log("ProductService updateProducts returned " + data);
var retProducts = data;
angular.copy(retProducts, products);
//console.log(retProducts);
});
}
return {
products: products,
updateProducts: updateProducts
}}])
HTML
<div ng-controller="ProductsCtrl">
<tr ng-repeat="product in productService.products">
<td>{{product.title}}</td>
<td>{{product.retailler}}</td>
</tr>
</div>
謝謝 - 我也嘗試這種早些時候,我得到一個錯誤:$已經消化進度 – jeh
@createsomevalue傷心。你可以在angular.copy之後使用console.log(產品)嗎?它看起來不錯嗎? –
@createsomevalue另外,我會安裝Batarang(https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk)以查看您的範圍是否真的發生了變化。 –