dojo存储中的每个对象都需要具有相同的结构吗?

dojo存储中的每个对象都需要具有相同的结构吗?,dojo,Dojo,以下面的例子为例 require(["dojo/store/Memory", "dojo/ready"], function (Memory, ready) { ready(function () { //Creating array of data set var employees = [{ name: "Krishna", topic: "Sales" }, { name: "Mohhamad", topic: "Sales" }, { name: "Sanaulla"

以下面的例子为例

require(["dojo/store/Memory",
"dojo/ready"],

function (Memory, ready) {
ready(function () {

//Creating array of data set
 var employees = [{
 name: "Krishna",
 topic: "Sales"
 }, {
 name: "Mohhamad",
 topic: "Sales"
 }, {
 name: "Sanaulla",
 topic: "Marketing"
 }, {
 name: "Raja",
 topic: "Marketing"
 }];

//Creating object store from the array
 var employeeStore = new dojo.store.Memory({
 data: employees,
 idProperty: "name"
 });

//Adding new data to the object store directly
 employeeStore.add({
 name: "Manisha",
 topic: "Advertising"
 });
然后,我可以向商店添加一名员工,并提供以下物品吗?(在这种情况下,员工有一个名为salary的新属性,该属性在首次创建商店时不存在)


创建内存存储时,存储中的每个对象是否都需要遵循在数据属性上设置的原始对象结构?

您可以在内存存储中添加具有任何“结构/属性”的对象

在下面的示例中,如果您检查并查看商店的
数据
属性,您可以看到添加的所有对象

当然,当使用从存储中检索对象时,您需要注意对象的不同结构

例如:


对于添加的具有不同结构的新对象,如果该对象没有在创建存储时指定的idProperty,则idProperty将自动添加到新对象中。所有其他属性都无关紧要,它们可能因对象而异。存储中的所有对象都将具有idProperty,即使新对象在添加到存储之前没有该属性

范例

var employees = [{
    name: "Krishna",
    topic: "Sales"
}, {
    name: "Mohhamad",
    topic: "Sales"
}];

var testStore = new Memory({
    data: employees,
    idProperty: "name"
});

//Add a new employee object
testStore.add({ name: "blah", topic: "test1" });

//Add a new object with different properties
testStore.add({ something: "s1", other: "o1" });
存储区将包含以下内容,请参见最后一个对象具有不同的属性且没有名称属性,但名称属性仍添加到其中

    require(['dojo/store/Memory'], function(Memory) {
  //Creating array of data set
  var employees = [{
    name: "Krishna",
    topic: "Sales"
  }, {
    name: "Mohhamad",
    topic: "Sales"
  }, {
    name: "Sanaulla",
    topic: "Marketing"
  }, {
    name: "Raja",
    topic: "Marketing"
  }];

  //Creating object store from the array
  var employeeStore = new dojo.store.Memory({
    data: employees,
    idProperty: "name"
  });

  //Adding new data to the object store directly
  employeeStore.add({
    name: "Manisha",
    topic: "Advertising"
  });
  employeeStore.add({
    name: "Manisha2",
    topic: "Advertising2",
    salary: "5"
  });
});
var employees = [{
    name: "Krishna",
    topic: "Sales"
}, {
    name: "Mohhamad",
    topic: "Sales"
}];

var testStore = new Memory({
    data: employees,
    idProperty: "name"
});

//Add a new employee object
testStore.add({ name: "blah", topic: "test1" });

//Add a new object with different properties
testStore.add({ something: "s1", other: "o1" });