如何观察 dstore 根对象的变化?
how do I observe for changes on the root object of dstore?
我的数据存储由一个项目数组组成,我希望在数组中添加或删除项目时收到通知。我怎样才能做到这一点?我试图在整个数据上提取一个 属性 对象,但没有成功。
<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",
});
validatingMemory2.setData([{ "id": "one", "positionX": 100, "positionY": 200, "moduleType": "label" }]);
console.log(validatingMemory2);
//error: property is not a function
var prpertyObject = validatingMemory2..property("items");
//I want to be alerted here when the item is added
validatingMemory2.addSync({ "id": "two", "positionX": 300, "positionY": 400, "moduleType": "label" });
console.log(validatingMemory2);
});
</script>
您应该在 dstore 中使用数据通知。
您可以使用可通过 on()
方法注册的侦听器来监视接收通知的数据更改,不同形式的通知由不同的事件类型设计:添加、更新和删除。
尝试在您的代码中使用它:
validatingMemory2 .on('delete, add, update', function(event){
// execute when a change is made to your store
});
可在此处找到更多信息:
我的数据存储由一个项目数组组成,我希望在数组中添加或删除项目时收到通知。我怎样才能做到这一点?我试图在整个数据上提取一个 属性 对象,但没有成功。
<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",
});
validatingMemory2.setData([{ "id": "one", "positionX": 100, "positionY": 200, "moduleType": "label" }]);
console.log(validatingMemory2);
//error: property is not a function
var prpertyObject = validatingMemory2..property("items");
//I want to be alerted here when the item is added
validatingMemory2.addSync({ "id": "two", "positionX": 300, "positionY": 400, "moduleType": "label" });
console.log(validatingMemory2);
});
</script>
您应该在 dstore 中使用数据通知。
您可以使用可通过 on()
方法注册的侦听器来监视接收通知的数据更改,不同形式的通知由不同的事件类型设计:添加、更新和删除。
尝试在您的代码中使用它:
validatingMemory2 .on('delete, add, update', function(event){
// execute when a change is made to your store
});
可在此处找到更多信息: