Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 如何在不触发网络请求的情况下绑定到hasMany length on Ember数据模型_Ember.js_Ember Data - Fatal编程技术网

Ember.js 如何在不触发网络请求的情况下绑定到hasMany length on Ember数据模型

Ember.js 如何在不触发网络请求的情况下绑定到hasMany length on Ember数据模型,ember.js,ember-data,Ember.js,Ember Data,假设我希望在我的余烬数据模型上有一个名为haschilds的计算属性,如下所示 import Ember from 'ember'; import Model from 'ember-data/model'; import { hasMany } from 'ember-data/relationships'; export default Model.extend({ children: hasMany(), hasChildren: Ember.computed('childr

假设我希望在我的余烬数据模型上有一个名为haschilds的计算属性,如下所示

import Ember from 'ember';
import Model from 'ember-data/model';
import { hasMany } from 'ember-data/relationships';

export default Model.extend({

  children: hasMany(),

  hasChildren: Ember.computed('children.[]', function() {
    return this.hasMany('children').ids().length > 0;
  })

});
不幸的是,上述操作仍然会触发服务器的跳闸

我能想到的解决方法之一是使用
volatile
computed属性


但是,我想知道是否有一种方法可以绑定到hasMany.length,而不触发网络请求。或者可能有一种方法可以绑定到
hasMany.ids
hasMany.value

对此不是100%确定,但您是否尝试过
Ember.get(this,'children').ids().length
根据为此模型返回的数据,客户端可能不知道该模型有多少子对象。它可以只是一个url来查询以解决关系。在这种情况下,您的选项是:在此查询之前加载子项,以便存储区具有副本并可以确定长度(例如侧加载),或者接受服务器请求。相当肯定,如果我理解正确的话,volatile在这里对您没有帮助。默认行为不是侧载关系吗?所以需要额外的电话才能知道孩子的数量?如何使关系同步<代码>子项:hasMany('children',{async:false})。当然,只有当数据与原始查询一起返回时,这才起作用。这一点不是100%确定的,但是您是否尝试过
Ember.get(this'children').ids()。length
根据为此模型返回的数据,客户端可能不知道该模型有多少子对象。它可以只是一个url来查询以解决关系。在这种情况下,您的选项是:在此查询之前加载子项,以便存储区具有副本并可以确定长度(例如侧加载),或者接受服务器请求。相当肯定,如果我理解正确的话,volatile在这里对您没有帮助。默认行为不是侧载关系吗?所以需要额外的电话才能知道孩子的数量?如何使关系同步<代码>子项:hasMany('children',{async:false})。当然,这只有在数据与原始查询一起返回时才起作用