【问题标题】:Cannot read property 'push' of undefined from Angular push无法从 Angular 推送中读取未定义的属性“推送”
【发布时间】:2015-04-06 11:13:24
【问题描述】:

我正在尝试将属性推送到 json 文件,但出现错误...

TypeError: 无法读取未定义的属性“push”

这是我的控制器....

'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: ''
}];
});

谁能看到我做错了什么?谢谢

【问题讨论】:

    标签: json angularjs


    【解决方案1】:

    编辑:我刚刚注意到您的 app 变量与您的工厂变量相同。你也应该解决这个问题。

    例如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({ ... });
    

    【讨论】:

      猜你喜欢
      • 2020-05-23
      • 2017-03-31
      • 2017-11-23
      • 1970-01-01
      • 2016-04-22
      • 2021-10-13
      • 2019-03-16
      • 1970-01-01
      • 2019-02-02
      相关资源
      最近更新 更多