123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- function setAsync(context, data) {
- return new Promise(function (resolve) {
- context.setData(data, resolve);
- });
- }
- exports.behavior = Behavior({
- created: function () {
- var _this = this;
- if (!this.$options) {
- return;
- }
- var cache = {};
- var computed = this.$options().computed;
- var keys = Object.keys(computed);
- this.calcComputed = function () {
- var needUpdate = {};
- keys.forEach(function (key) {
- var value = computed[key].call(_this);
- if (cache[key] !== value) {
- cache[key] = value;
- needUpdate[key] = value;
- }
- });
- return needUpdate;
- };
- },
- attached: function () {
- this.set();
- },
- methods: {
- // set data and set computed data
- set: function (data, callback) {
- var _this = this;
- var stack = [];
- if (data) {
- stack.push(setAsync(this, data));
- }
- if (this.calcComputed) {
- stack.push(setAsync(this, this.calcComputed()));
- }
- return Promise.all(stack).then(function (res) {
- if (callback && typeof callback === 'function') {
- callback.call(_this);
- }
- return res;
- });
- }
- }
- });
|