首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >新手Emberfire查询

新手Emberfire查询
EN

Stack Overflow用户
提问于 2017-01-17 21:13:25
回答 2查看 166关注 0票数 0

我在处理简单的EmberFire查询时遇到了麻烦。我想通过名称找到一个系对象,然后根据下面描述的数据模型将它添加到一个大学系中。

我收到的错误是:

TypeError:无法读取未定义的属性“pushObject”

我做错了什么?

代码语言:javascript
复制
              store.query('college', {orderBy: 'name', equalTo: "CAS"}).then(function(c){
              var college = c
              console.log(college);
              dept.set('college',college);
              college.get('departments').pushObject(dept);
              dept.save();
              college.save()

            }
          )

部门在下列地方:

代码语言:javascript
复制
  store.query('department', {orderBy: 'name', equalTo: "Testing One"}).then(function(depts){
              // var dept = depts.get('content')[0]
              var dept = depts})

以下是我的完整查询:

代码语言:javascript
复制
    findOne(){
      var store = this.store
      // store.query('department', {orderBy: 'name', equalTo: "Testing One"}).then(function(depts){
      store.query('department', {orderBy: 'name', equalTo: "Testing One"}).then(function(depts){
          // var dept = depts.get('content')[0]
          var dept = depts
          console.log(dept);
          //Add it to college
          store.query('college', {orderBy: 'name', equalTo: "CAS"}).then(function(c){
              var college = c//.get('content')[0]
              console.log(college);
              dept.set('college',college);
              college.get('departments').pushObject(dept);
              dept.save();
              college.save()

            }
          )
      })
},

部门:

代码语言:javascript
复制
export default DS.Model.extend({
   name: DS.attr('string'),
   faculty:DS.hasMany('faculty'),
   college: DS.belongsTo('college')
});

学院:

代码语言:javascript
复制
import DS from 'ember-data';

export default DS.Model.extend({
  name: DS.attr('string'),
  departments: DS.hasMany('department')
});

编辑:C对象从查询:

代码语言:javascript
复制
Class
__ember1484688357664
:
"ember632"
__ember_meta__
:
Meta
__firebaseCleanup
:
()
_super
:
ROOT()
_updatingPromise
:
null
content
:
(...)
get content
:
GETTER_FUNCTION()
set content
:
SETTER_FUNCTION(value)
isLoaded
:
true
isUpdating
:
false
links
:
EmptyObject
manager
:
Class
meta
:
EmptyObject
query
:
Object
store
:
Class
type
:
quality-online@model:college:
__proto__
:
Class
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-17 21:43:28

您应该尝试类似于以下内容:

代码语言:javascript
复制
store.query('department', {orderBy: 'name', equalTo: "Testing One"}).then(function(c) {
  return c.get('firstObject');
}).then(function(college) {
  departments = college.get('departments');
  departments.pushObject(dept);
  ...
});
票数 1
EN

Stack Overflow用户

发布于 2017-05-18 04:00:23

塔维斯的答案在大多数情况下都会奏效,但它有点丑陋。这是解决这个问题的普遍接受的方法,因为EmberFire并没有真正提供更好的东西。然而,这是一个附加项,可以满足所有的查询需求。你可以去看看这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41707098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档