EarthSDK MVVM

用来实现响应式数据对象或者属性绑定的方法集合

Methods

staticMVVM.bind(reactObject1, reactProperty1, reactObject2, reactProperty2, params)

双向绑定的属性,如果一方发生变化,另一方同样会跟随变化
Name Type Description
reactObject1 object 第一个绑定对象,可以是vue对象,或者是XbsjEarth中的对象
reactProperty1 string 第一个绑定对象的属性名,必须是字符串类型,形式如:'prop1.prop2.prop3'
reactObject2 object 第二个绑定对象,可以是vue对象,或者是XbsjEarth中的对象
reactProperty2 string 第二个绑定对象的属性名,必须是字符串类型,形式如:'prop1.prop2.prop3'
params object optional 额外参数,暂时保留

staticMVVM.bindDegreeRadian(degreeObject, degreeProperty, radianObject, radianProperty)

双向数据绑定,前者为角度属性,后者为弧度属性。注意:绑定的只能是number类型的值!
Name Type Description
degreeObject object 第一个绑定对象,可以是vue对象,或者是XbsjEarth中的对象
degreeProperty string 第一个绑定对象的属性名,必须是字符串类型,形式如:'prop1.prop2.prop3'
radianObject object 第二个绑定对象,可以是vue对象,或者是XbsjEarth中的对象
radianProperty string 第二个绑定对象的属性名,必须是字符串类型,形式如:'prop1.prop2.prop3'

staticMVVM.bindPosition(degreesObject, degreesPropery, radiansObject, radiansProperty)

双向数据绑定,前者为角度属性,后者为弧度属性。注意:绑定的只能是一个长度为3的数组。该数组中的元素必须是number类型。
Name Type Description
degreesObject object 第一个绑定对象,可以是vue对象,或者是XbsjEarth中的对象
degreesPropery string 第一个绑定对象的属性名,必须是字符串类型,形式如:'prop1.prop2.prop3'
radiansObject object 第二个绑定对象,可以是vue对象,或者是XbsjEarth中的对象
radiansProperty string 第二个绑定对象的属性名,必须是字符串类型,形式如:'prop1.prop2.prop3'

staticMVVM.bindRotation(degreesObject, degreesPropery, radiansObject, radiansProperty)

双向数据绑定,前者为角度属性,后者为弧度属性。注意:绑定的只能是一个长度为3的数组。该数组中的元素必须是number类型。
Name Type Description
degreesObject object 第一个绑定对象,可以是vue对象,或者是XbsjEarth中的对象
degreesPropery string 第一个绑定对象的属性名,必须是字符串类型,形式如:'prop1.prop2.prop3'
radiansObject object 第二个绑定对象,可以是vue对象,或者是XbsjEarth中的对象
radiansProperty string 第二个绑定对象的属性名,必须是字符串类型,形式如:'prop1.prop2.prop3'

staticMVVM.track(reactObject1, reactProperty1, reactObject2, reactProperty2, params)

单向绑定的属性,reactObject1[reactProperty1]将跟踪reactObject2[reactProperty2],但reactObject1发生变化reactObject2并不会跟踪!
Name Type Description
reactObject1 object 第一个绑定对象,可以是vue对象,或者是XbsjEarth中的对象
reactProperty1 string 第一个绑定对象的属性名,必须是字符串类型,形式如:'prop1.prop2.prop3'
reactObject2 object 第二个绑定对象,可以是vue对象,或者是XbsjEarth中的对象
reactProperty2 string 第二个绑定对象的属性名,必须是字符串类型,形式如:'prop1.prop2.prop3'
params object optional 额外参数,暂时保留

staticMVVM.watch()

watch
用来实现对响应式属性对象的监控,需要1-3个参数,具体使用请看示例。
注意这里的watch不能跟踪vue的属性,vue的属性跟踪,请使用Vue.$watch来操作。
Example:
// 示例1:只需要一个参数,该参数是一个回调函数,函数中任意一个用到的响应式属性发生变化,
// 函数即会响应。但需要注意,如果函数中有很多响应式属性时,这种方式容易引起死循环。
// 相当于a变化,会引起b的变化;b的变化,又到至a继续变化。这样就导致了死循环。
var uw = XE.MVVM.watch(() => {
	console.log('当前位置:' + path1.currentD);
});

// 示例2:需要三个参数,第一个参数是监控的对象,第二个参数是该对象的属性,注意要用字符串表示
// 第三个参数是一个回调函数,当属性的值发生变化时,该函数会响应。
var uw2 = XE.MVVM.watch(path1, 'currentD', () => {
	console.log('当前位置:' + path1.currentD);
});

// 示例3:需要两个参数,第一个参数是监控的对象
// 第二个参数是一个回调函数,当监控对象内部发生变化时,该函数会响应。
// 比如path.positions是一个位置数组,如果数组的长度,内容发生变化,就会引起函数调用。
var uw3 = XE.MVVM.watch(path1.positions, () => {
	console.log('positions发生变化!');
});

// 示例4:需要两个参数,第一个参数是回调函数,需要有返回值
// 第二个参数是一个回调函数,当第一个参数构成的回调函数的返回值发生变化时,该回调函数就会响应。
var uw4 = XE.MVVM.watch(() => { 
    return path1.show;
}, show => {
	console.log(`路径状态:${show ? '显示' : '隐藏'}`);
});