0

我有一个有几种不同方法的工厂,我试图声明一个嵌套了数组的对象。那一个嵌套数组将是我的应用程序的主要驱动力,它也将具有嵌套数组(更多)。但是,我确实希望嵌套数组保持嵌套在该对象中。我尝试了以下操作,但我不断收到myObject未定义的错误。

app.factory('myService', function() {
    return {
        myobject: {name: "MockName", version: "1", myArray: []},
        addToArray: function(){
            this.myobject.myArray.push({name: "Something + " (typeof(myObject.myArray) === 'undefined' ? 1 : myObject.myArray.length, anotherArrayInside: []})
        },
        .......
    };
});

我仍然是 Angular 的新手,所以我不知道如何解决这个问题。有什么建议么?

解决了

所以我发现我没有放一段代码,而那段代码导致了我的问题:

它是 myObject.myArray ,因为 myObject.myArray 尚未定义,它给了我一个错误。此后我将其更改为typeof(myObject) === 'undefined'

4

2 回答 2

3

这是一个 Javascript 问题。

app.factory('myService', function() {
    var myobject = {name: "MockName", version: "1", myArray: []}
    return {
        addToArray: function(){
            myobject.myArray.push({name: "Something" , anotherArrayInside: []})
        },
        .......
    };
});
于 2013-07-09T14:50:33.097 回答
2

您可能想阅读这个Angular 服务定义:服务或工厂

这不是 AngularJS 的问题,而是你在 JavaScript 中做错的事情。

var yourobj = {...}
return { addToArray : function() { /* now yourobj is visible */ }

无论如何,我用你的代码做了一个jsfiddle 。你的“这个”让它可见,但更好的方法是显示模式http://addyosmani.com/resources/essentialjsdesignpatterns/book/

于 2013-07-09T14:44:54.237 回答