我想创建一个像这样的对象
$scope.allBooks = {
books:[
{
name:"",
id:""
}
{
name:"",
id:""
}
// can be add another object
]
books:[
{
name:"",
id:""
}
{
name:"",
id:""
}
]
}
事实上,能够为书籍添加更多对象,并为allBooks添加更多书籍。
我的解决方案就是这个
$scope.allBooks = {};
$scope.allBooks.books= [];
var b= {
name:"",
id:""
};
$scope.allBooks.books.push(b);
我的问题是如何在书籍中添加更多对象,还为allBooks添加更多数组?
答案 0 :(得分:2)
实际上,您应该重新考虑您尝试创建的allBooks对象的结构,而不是动态添加属性。我理解它的方式是,你有一个属于一起的书籍集合,而这些书籍又属于另一个集合。换句话说,你有一个数组数组。
这会将您的对象变成以下内容:
$scope.allBooks = [
{ id: 0,
name: 'Harry Potter Collection',
books: [{
id: 0,
name: 'Goblet of Fire',
ISBN-13: '1212245'
},{},...] //here are the books that belong to this collection
},
{ id: 1,
name: 'Lord Of The Rings Collection',
books: [{},...] //LOTR books
]
这样您就可以将一系列图书推送到 allBooks 集合。
var newCollection = {
id:2,
name: 'AnotherCollection',
books: []
};
var newBook = {
id: 1354,
name: 'Eloquent Javascript 2',
ISBN-13: 978-1593272821
};
newCollection.books.push(newBook) //push a new book to this collection
$scope.allBooks.push(newCollection);
你的问题有更多的解决方案,但我会选择一系列的收藏品。
答案 1 :(得分:1)
做你已经做过的事情:
$scope.allBooks.books2 = [];
$scope.allBooks.books2.push(b);
$scope.allBooks.books3 = [];
$scope.allBooks.books3.push(b);