Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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
Javascript Ember.js-在组件内部查询,错误:调用end而不调用begin_Javascript_Ember.js - Fatal编程技术网

Javascript Ember.js-在组件内部查询,错误:调用end而不调用begin

Javascript Ember.js-在组件内部查询,错误:调用end而不调用begin,javascript,ember.js,Javascript,Ember.js,在Ember.js中,我试图查询组件中的存储,如下所示: let foo = this.get('store').query('bar', { foobar: this.get('barfoo') }); 但不断出现如下错误: end called without begin at Backburner.end 知道为什么会这样吗? 干杯 编辑:在路由而不是组件上尝试此操作,但相同的错误不断发生。计算属性不直接处理承诺(异步调用),这就是foo将设置为的,直到承诺从异步调用解析。如果要将fo

在Ember.js中,我试图查询组件中的存储,如下所示:

let foo = this.get('store').query('bar', { foobar: this.get('barfoo') });
但不断出现如下错误:

end called without begin at Backburner.end
知道为什么会这样吗? 干杯


编辑:在路由而不是组件上尝试此操作,但相同的错误不断发生。

计算属性不直接处理承诺(异步调用),这就是
foo
将设置为的,直到承诺从异步调用解析。如果要将
foo
设置为查询返回的值,可以在函数调用中执行此操作,并使用
set('foo',returnValue)
将值分配给
foo

这在Ember中有点反模式,这就是为什么建议在路由模型中执行数据加载和异步调用的原因,因为它是承诺感知的

您还可以研究返回一个
DS.PromiseArray
,如下面的代码示例所示:

filter3: computed('ingredients.@each.vegetarian', function() {
  return DS.PromiseArray.create({
    promise: this.get('ingredients').then(ingredients => {
      return ingredients.filterBy('vegetarian');
    })
  });
})
更多信息:
计算属性不直接处理承诺(异步调用),这就是
foo
将设置为的内容,直到承诺从异步调用解析。如果要将
foo
设置为查询返回的值,可以在函数调用中执行此操作,并使用
set('foo',returnValue)
将值分配给
foo

这在Ember中有点反模式,这就是为什么建议在路由模型中执行数据加载和异步调用的原因,因为它是承诺感知的

您还可以研究返回一个
DS.PromiseArray
,如下面的代码示例所示:

filter3: computed('ingredients.@each.vegetarian', function() {
  return DS.PromiseArray.create({
    promise: this.get('ingredients').then(ingredients => {
      return ingredients.filterBy('vegetarian');
    })
  });
})
更多信息:

对于任何通过谷歌在这方面遇到障碍的人来说,当你试图将一个对象作为查询参数传入,而
jQuery
未能序列化它时,就会发生这种情况。请尝试传入一个基元类型。

如果有人在google上遇到这个问题,当您试图将一个对象作为查询参数传入,而
jQuery
无法序列化时,就会发生这种情况。请尝试传入一个基元类型。

我认为我们需要看到更多的代码。一般来说,更好的做法是在路由中获取数据并将其传递给组件。该行位于计算属性中。现在没有更多的内容了,您如何尝试使用
foo
?在我的测试中,当从init hook中的组件获取数据时,我遇到了同样的问题(这通常是一种不好的做法,但在某些情况下,从路由获取数据并不是最好的选择)。它只在测试中失败,即使使用幻影:(.不知道如何修复它。我认为我们需要看到更多的代码。一般来说,在路由中获取数据并将其传递给组件被认为是更好的做法。该行位于计算属性中。目前没有更多内容。您如何尝试使用
foo
?我的te中也有同样的问题sts在从init钩子中的组件获取数据时(这通常是一种不好的做法,但在某些情况下,从路由获取数据并不是最好的选择)。它只在测试中失败,甚至使用mirage:(.不知道如何修复它。