1234567891011121314151617181920212223242526272829303132333435363738394041 |
- const {
- observersHandle,
- } = require('./observerHandle')
- function collectObservers(observersObj, options, param) {
- const self = this
- for (const key in options.observers) {
- if (options.observers.hasOwnProperty(key)) {
- const keyArr = key.split(',')
- const arr = []
- keyArr.forEach((its) => {
- its = its.trim()
- let attr = {}
- if (its.match(/\./)) {
- const _attr = its.split('.')
- attr = processChildAttr(self.data, _attr)
- } else {
- attr = self.data[its]
- }
- arr.push(attr)
- })
- keyArr.forEach((its) => {
- its = its.trim()
- observersObj[its] = Object.create(null)
- observersObj[its].fn = options.observers[key]
- observersObj[its].arr = arr
- })
- }
- }
- observersHandle(observersObj, param, self)
- }
- function processChildAttr(attr, arr) {
- let _ = attr
- arr.forEach((name) => {
- _ = _[name]
- })
- return _
- }
- module.exports = collectObservers
|