我有一个工厂有几种不同的方法,我试图声明一个嵌套在其中的数组的对象。那个嵌套数组将是我的应用程序的主要驱动力,它也将有嵌套数组(更多)。但是,我确实希望嵌套数组保持嵌套在那个对象中。我尝试了以下操作,但我一直收到 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'
答案 0 :(得分:3)
这是一个Javascript问题。
app.factory('myService', function() {
var myobject = {name: "MockName", version: "1", myArray: []}
return {
addToArray: function(){
myobject.myArray.push({name: "Something" , anotherArrayInside: []})
},
.......
};
});
答案 1 :(得分:2)
您可能需要阅读此Angular Service Definition: service or factory
这不是AngularJS的问题,而是你在JavaScript中做错了。
var yourobj = {...}
return { addToArray : function() { /* now yourobj is visible */ }
无论如何,我用你的代码做了jsfiddle。你的“这个”使它可见,但更好的方法是揭示模式http://addyosmani.com/resources/essentialjsdesignpatterns/book/