return Object.keys(obj).map(key => { const value = obj[key] return ( <section class="source"> <label class="label">{key} : </label> {Vue.compile(value).render.call(this)} </section> ) })
it('should compile render functions', () => { const res = Vue.compile('<div><span>{{ msg }}</span></div>') const vm = new Vue({ data: { msg: 'hello' }, render: res.render, staticRenderFns: res.staticRenderFns }).$mount() expect(vm.$el.innerHTML).toContain('<span>hello</span>') })
export const compile = (tpl, vm) => { let keys = ['methods', 'computed', 'data', 'filters']; let props = {}; let node = Vue.compile(tpl); keys.forEach(key => { props[key] = vm.$parent.$parent.$options[key]; if (key === 'data' && typeof props[key] === 'function') { props[key] = props[key](); } }); let vNode = new Vue({ ...props, ...node }); vNode.$mount(); return vNode; };