2016-08-23 10 views
0

私のデータストアはアイテムの配列で構成されており、アイテムがアレイに追加または削除されたときに通知を受けたいと思います。これどうやってするの?私はデータ全体でプロパティオブジェクトを抽出しようとしましたが、失敗しました。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> 

答えて

1

dstoreでデータ通知を使用する必要があります。

on()メソッドを使用して登録できるリスナーを使用して、通知のデータ変更を監視できます。異なるイベントタイプ、つまり追加、更新、および削除によって設計されたさまざまな通知形式が使用できます。

はあなたのコードでこれを使用してみてください:

validatingMemory2 .on('delete, add, update', function(event){ 
    // execute when a change is made to your store 
}); 

追加情報はここで見つけることができます:

https://www.sitepen.com/blog/2014/11/17/introducing-dstore/

http://dstorejs.io/tutorials/realtime_stores.html

関連する問題