我喜欢不同类型的商店(杂货店,餐馆,健身房等)。它们对于数组中的对象是唯一的。例如,健身房将有不同于杂货店的部分。
var UserSchema = new Schema({
store: [
{
name: String,
section: Array,
}
],
});
我使用的只是store:Array(在UserSchema中),但我将存储更改为数组内的对象。如何推送商店内的对象?
$scope.storeUpdate = function(){
Users.get({email:$scope.global.user.email}, function(user3) {
// Changing store.push to store.name.push gives the error: user3 not defined
// If in UserSchema the store: type: Array, then user3[0].store.push works fine
user3[0].store.section.push($scope.datStore.name);
user3[0].$update(function(response) {
// This just updates user changes on the webpage
Users.query({}, function(users) {
$scope.users = users;
$scope.global.user = response;
});
});
});
};
编辑:我应该只嵌入第二个架构吗?
答案 0 :(得分:0)
user3[0].store.name.push($scope.datStore.name);
你正在推进store.name这是一个字符串对象(不是一个数组)
如果要推送到store.name
,可以更改架构var UserSchema = new Schema({
store: [
{
name: Array,
section: Array,
}
],
});
然后您就可以进入user3 [0] .store.name
修改强>
你有Schema,因为那里有一个具有属性存储的对象,其中store是一个包含对象的数组,这些对象将具有属性name和section ..所以只需将对象推送到商店。
只需确定架构应该是什么,您的目标是将数据推送到商店吗?
所以你必须在推送之前建立对象。例如
var obj ={
name: $scope.datStore.name,
section: ["grocery","utensils"]
}
然后将您的对象推入商店数组。
user3[0].store.push(obj);
简而言之,在将其推入商店数组
之前,创建要推入商店的对象你可以将数据推送到这样的部分(在将对象推入商店之前
)var obj ={
name: $scope.datStore.name,
section: []
}
obj.section.push(someSource1.section); //grocery
obj.section.push(someSource2.section); //utensils
然后进入商店
user3[0].store.push(obj); // here object being pushed will be {name:"",section:["grocery","utensils"]