听起来很简单,但是......
此数字包含枚举类型,并且应该是自定义实时对象中的字段。这是自定义对象注册例程中的声明:
MyRTObjectType.prototype.myEnumeratedType =
gapi.drive.realtime.custom.collaborativeField('myEnumeratedType');
我可以将它作为简单的javascript编号存储在模型中,并将其初始化为:
function initializeMyRTObjectType() {
// other fields here
this.myEnumeratedType = 0;
}
...但当然,以下内容不起作用,因为它只是一个数字:
myRTObject.myEnumeratedType.addEventListener(
gapi.drive.realtime.EventType.OBJECT_CHANGED, self.onTypeChanged);
我可以将事件监听器添加到整个对象:
myRTObject.addEventListener(
gapi.drive.realtime.EventType.OBJECT_CHANGED, self.onTypeChanged);
但我只对这个数字的更改感兴趣(如果我 对其他更改感兴趣,我不想检查每个字段以查看更改的内容。)
所以假设我将它存储为实时字符串,将其初始化为:
function initializeMyRTObjectType() {
var model = gapi.drive.realtime.custom.getModel(this);
// other fields here
this.myEnumeratedType = model.createString();
}
现在我会得到我的改变事件,但它们不一定是原子的,我不知道改变,从“100”到“1001”,只是改变到了“101” ,所以我是否应该对此做出反应(这个确切的例子可能无效,但想法就在那里......)
所以问题是,是否有一种方法可以知道所有(复合?)更改,插入/删除在字符串字段上是完整的,或者(更好)一种不同的推荐方式来存储数字,并获得原子通知什么时候改变了?
答案 0 :(得分:2)
您还会在包含对象上获得VALUE_CHANGED事件,就像您对地图一样:
myRTObject.addEventListener(gapi.drive.realtime.EventType.VALUE_CHANGED,
function(event) {
if (event.property === 'myEnumeratedType') {
// business logic
}
});