You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
608 B
20 lines
608 B
4 years ago
|
import { behavior } from './behavior';
|
||
|
export function observe(vantOptions, options) {
|
||
|
const { watch } = vantOptions;
|
||
|
options.behaviors.push(behavior);
|
||
|
if (watch) {
|
||
|
const props = options.properties || {};
|
||
|
Object.keys(watch).forEach(key => {
|
||
|
if (key in props) {
|
||
|
let prop = props[key];
|
||
|
if (prop === null || !('type' in prop)) {
|
||
|
prop = { type: prop };
|
||
|
}
|
||
|
prop.observer = watch[key];
|
||
|
props[key] = prop;
|
||
|
}
|
||
|
});
|
||
|
options.properties = props;
|
||
|
}
|
||
|
}
|