2

我想在我的路由器或控制器中有一个名为“name”的变量,我将在我的 hbs 模板中使用它。现在,我正在这样做。但是,如果我向后导航并再次单击指向当前页面的链接,则不会加载 get()。它只加载第一次,如果我刷新页面。因此,每次我点击页面时,我的表单中的 name 值都不会重新加载。

      #controller
      name: computed('model.name', {
        get() {
          return this.get('model.name');
        }
      })



      #.hbs
      {{input type = "text" value=name }}
      <button {{action 'update' model.id }}>Update Post</button> 


        #routefile
      import Route from '@ember/routing/route';
      import EmberObject, { computed } from '@ember/object';
      export default Route.extend({
      model(params) {
       return this.get('store').findRecord('post',params.post_id );
      }
      });
4

1 回答 1

1

您需要添加一个set方法,否则您声明的计算属性将被输入的值覆盖(通过{{input}}帮助程序)。

  name: computed('model.name', {
    get() {
      return this.get('model.name');
    },
    set(key, value) {
      return value;
    }
  })
于 2018-08-20T12:32:34.950 回答