0
データストアに新しいアイテムを追加しようとすると、そのアイテムは追加されません。しかし、私はsetDataを使って設定したデータ項目を受け入れ、値を取得したりプロパティを監視するなど、オブジェクトを操作することができます。dstore add()データストアに新しいアイテムを追加しない
データストアにアイテムを追加するにはどうすればよいですか?
私のコードは以下の通りです。
<script>
require(
[
'dojo/_base/declare',
'dstore/Memory',
'dmodel/extensions/jsonSchema',
'dmodel/validators/StringValidator',
'dmodel/store/Validating',
"dmodel/Model",
"dojox/json/schema",
"dojo/text!app/model/testing/baseSchema.json",
],
function (declare, Memory, jsonSchema, StringValidator, Validating, Model, DJS, mySchema) {
var validatingMemory2 = (declare([Memory, Validating]))({
Model: jsonSchema(
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Form Elements",
"type": "array",
"items": {
"title": "Form Element",
"type": "object",
"properties": {
"id": {
"description": "identifier",
"type": "string"
},
"positionX": {
"type": "number"
},
"positionY": {
"type": "number"
},
"moduleType": {
"description": "type",
"type": "string"
}
},
"required": ["id"],
"additionalProperties": false
}
}
),
idProperty: "id",
//additionalProperties: false //This indicates whether or not to allow additional properties outside of those defined by the schema. This defaults to true.
});
validatingMemory2.setData([{ "id": "one", "positionX": 100, "positionY": 200, "moduleType": "label" }]);
console.log(validatingMemory2);
validatingMemory2.add({ "id": "two", "positionX": 300, "positionY": 400, "moduleType": "label" }); //does not add this one
console.log(validatingMemory2);
var objectone = validatingMemory2.getSync("one");
console.log(objectone.positionX); //100
var objecttwo = validatingMemory2.getSync("two");
console.log(objecttwo.positionX); //error undefined property
var propOne = objectone.property("positionX");
propOne.observe(function() {
console.log("updated");
});
propOne.put(150);
});
</script>
を提供しますか? – erotavlas
見積もりはdstoreのドキュメントからの引用です。 'options'や' store.PutDirectives'の詳細はここにありますhttps://github.com/SitePen/dstore/blob/master/Store.js –