2015-02-06 120 views
0

的不確定「推」我試圖把屬性JSON文件,我得到一個錯誤......無法讀取屬性從角推

類型錯誤:未定義

無法讀取屬性「推」

這是我的控制器....

'use strict'; 
(function() { 

var userQuoteBuild = angular.module('priceQuoteApp'); 

userQuoteBuild.controller('quoteBuilderController', function ($scope, $http, $timeout, productsServices, userQuoteBuild) { 

    $scope.getProductDetails = function (item) { 

     userQuoteBuild.setProductName(item.product_name) 

     userQuoteBuild.SelectedProductattributes1.push({ 
       bearerBandwidth: '100', 
       description: 'item2' 
      }); 

    };  

}); 

userQuoteBuild.controller('productDisplayer', function ($scope, userQuoteBuild) { 
    $scope.userQuoteBuild = userQuoteBuild; 
    $scope.$watch(function() { return userQuoteBuild.getProductName(); }, function (newValue) { 
     if (newValue) $scope.selected_product_name = newValue; 
    }); 
}); 

}()); 

而這正是我保持JSON ....

var userQuoteBuild = angular.module('priceQuoteApp'); 

userQuoteBuild.factory('userQuoteBuild', function() { 

var SelectedProductattributes1 = [{ 
    bearerBandwidth: '', 
    description: '' 
}]; 
}); 

任何人都可以看到我做錯了什麼?謝謝

回答

1

編輯:我只是注意到,你的應用程序變量是相同的工廠變量。你也應該解決這個問題。

例如var app = angular.module('priceQuoteApp');然後app.factory(....

你的工廠需要返回變量能夠訪問內容

app.factory('userQuoteBuild', function() { 
    return [{ 
     bearerBandwidth: '', 
     description: '' 
    }]; 
}); 

然後追加簡單

userQuoteBuild.push({ ... }); 

,或者,如果你想在工廠給自己多一些空間

app.factory('userQuoteBuild', function() { 
    return { 
     SelectedProductattributes1: [{ 
      bearerBandwidth: '', 
      description: '' 
     }] 
    }; 
}); 

然後

userQuoteBuild.SelectedProductattributes1.push({ ... }); 
+0

大 - 謝謝! – 2015-02-06 11:15:21