我试图将属性推送到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: ''
}];
});
谁能看到我做错了什么?感谢
答案 0 :(得分: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({ ... });