簡體   English   中英

TypeError:無法讀取angularjs中未定義的屬性“ reduce”

[英]TypeError: Cannot read property 'reduce' of undefined in angularjs

所以我的問題可能有點奇怪,但是我遇到的問題實際上也很奇怪。

因此,為了創建自定義搜索過濾器,在這種情況下,我使用javascript.map.reduce函數在我的范圍示例中使用了它們。 看下面的代碼:

$http.get('config/get/getOrders.php', {cache: true}).then(function(response){
        $scope.orders = response.data.orders.order;
        $scope.orders.map( function addPlace(item) {
            item.firstname = $scope.customers.reduce(function(a,customers){
                return item.id_customer === customers.id ? customers.firstname : a;
            }, '');
            return item;
        });
    });

因此,在$http.get()我請求包含數據的JSON文件。 該數據由一些帶有信息的訂單組成。 所有這些訂單都有一個id_customer值。 此值連接到下訂單的客戶信息。

因此,我想使用該customer name擴展搜索功能。有關如何以及為什么看昨天我問過的這個問題的更多信息。

而且有效。 過濾器還可以搜索customer_firstname 但是后來我想在另一個控制器中使用相同類型的功能。 功能目標保持不變。 連接來自多個$scope類型的數據。 但是很奇怪,因為它返回的是TypeError: Cannot read property 'reduce' of undefined 是的,我將其放置在相同的app.js中,但僅放置在另一個控制器中。 我已經檢查了$scope.products$scope.stock_availables$scope.productCombiantions所有數據$scope.productCombiantions存在並且確實存在,我已經檢查了提供者等,並且都適合我,所以我不知道為什么發生。 在這種情況下的功能是:

$http.get('config/get/getProducts.php', {cache: true}).then(function(response){
    $scope.products = response.data.products.product;
    $scope.products.map( function addPlace(item) {
        item.eanCombination = $scope.productCombinations.reduce(function(a, productCombinations, stock_availables){
            return item.id === stock_availables.id + stock_availables.id === stock_availables.id_product_attribute + stock_availables.id_product_attribute === productCombinations.id ? productCombinations.ean13: a;
        }, '');
        return item;
    });
});

簡短摘要:一個功能在一個控制器中確實起作用,但同一功能在另一個控制器中不起作用。

如果您有任何疑問,請在評論中提問。

一如既往,預先感謝!

所以我在加載所有數據的順序上犯了一個錯誤。 因為$scope.productCombinations是在product序列之后加載的事實。 所以給大家小費。 始終檢查編寫代碼的順序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM