Angular JS - 无法将对象推送到范围数组中

时间:2017-04-01 13:38:53

标签: javascript angularjs

我确定我错过了一些可能非常基本的东西,但似乎无法解决这个问题。我很简单,试图在点击时将对象推入范围数组。我目前收到错误:TypeError: Cannot read property 'push' of undefined(…)

这是我到目前为止所得到的一个例子:

var app = angular.module('myApp', []);    

app.factory('MyService', function($http, $q, $timeout){

    var My_Stored_Data = {}

    return {

        template: function(){

            var template = { data1: "", data2: "", data3: "", data4: "" }
            return template

        }

    }              
});

这是控制器:

app.controller('MyController', function ($scope,$q,MyService) {

    $scope.Main_scope = {};

    $scope.add_new_object = function(){

        $scope.Main_scope.My_array.push(MyService.template());
        //This give an error TypeError: Cannot read property 'push' of undefined(…) 
    }

});  

任何人都有什么遗失?

2 个答案:

答案 0 :(得分:2)

您需要在Main_scope对象

中初始化My_array
app.controller('MyController', function ($scope,$q,MyService) {
     $scope.Main_scope = {};
     $scope.Main_scope.My_array =[];

答案 1 :(得分:1)

错误很详细且未定义My_array

您需要在Main_scope变量中定义数组。

$scope.Main_scope = {
    My_array : []
};