3

我想使用js-data 3.0.1 作为我的 Vue.js 2.4.2 SPA 的存储。一切都像一个魅力,但不幸的是我不能让反应数据绑定工作。

我已经尝试过vue-js-data,它似乎被破坏了。

以下示例不起作用。如果我更改文本字段,文本将不会更新。但是,如果我用普通的旧 JS 对象替换 js-data 记录,它会像预期的那样工作。

user.vue

<template>
  <div>
    <input name="name" v-model="user.name" />
    <br />
    Name: {{user.name}}
  </div>
</template>

<script>
   export default {
     data() {
       return {
         user: this.store.createRecord('user')
       }
     }
   }
</script>

我很感谢任何建议如何使数据绑定(v-model例如通过)工作。

4

1 回答 1

4

如果您将其添加到constructor您的User类中,它应该适用于所有根级别属性。有关完整示例,请参见此处:https ://gist.github.com/calebroseland/2fa37abdb5560739b3b4b901382b0a90

  // apply vue reactivity
  for (let key in this) {
    Vue.util.defineReactive(this, key, this[key]) 
  }

  // re-apply js-data schema
  this._mapper().schema.apply(this)

Vue 和 Js-Data 反应性不能开箱即用的原因是它们都有单独的实现,使用稍微不同的机制。这是一个解释:https ://medium.com/p/525ffe12ad81#c925

于 2017-09-19T14:58:21.983 回答