错误:断言失败:您必须在传递给'push'的对象中包含成员的'id'

时间:2018-03-17 23:09:56

标签: javascript ember.js wordpress-rest-api

我在Stackoverflow上看了这个,但仍然无法弄清楚如何摆脱这个错误。基本上我正在尝试使用Wordpress API并按照本教程https://www.codesandnotes.com/ember-js/ember-wordpress/

将其连接到我的Ember App

我收到了这个错误:

Error Screenshot

我无法弄清楚它为什么会出现或如何摆脱它。我无法想到任何地方/其他人要求,所以任何帮助都会非常感激。 这是我的代码:

应用程序/ router.JS

import Ember from 'ember';
import config from './config/environment';

const Router = Ember.Router.extend({
  location: config.locationType,
  rootURL: config.rootURL
});

Router.map(function() {
  this.route('about');
  this.route('members');
});

export default Router;

应用程序/路由/ member.js

import Ember from 'ember';

export default Ember.Route.extend({
  model() {
    return this.store.findAll('member');
  }
});

应用程序/模型/ member.js

import DS from 'ember-data';
import PostModel from 'ember-wordpress/models/post';

export default PostModel.extend({

});

应用程序/配置/ environment.js

/* eslint-env node */
'use strict';

module.exports = function(environment) {
  let ENV = {
    modulePrefix: 'doe-site',
    environment,
    rootURL: '/',
    locationType: 'auto',
    EmberENV: {
      FEATURES: {
        // Here you can enable experimental features on an ember canary build
        // e.g. 'with-controller': true
      },
      EXTEND_PROTOTYPES: {
        // Prevent Ember Data from overriding Date.parse.
        Date: false
      }
    },

    APP: {
      // Here you can pass flags/options to your application instance
      // when it is created
    },
    wordpressHost: 'http://wordpress.daughtersofeve.org/'
  };

  if (environment === 'development') {
    // ENV.APP.LOG_RESOLVER = true;
    // ENV.APP.LOG_ACTIVE_GENERATION = true;
    // ENV.APP.LOG_TRANSITIONS = true;
    // ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
    // ENV.APP.LOG_VIEW_LOOKUPS = true;
  }

  if (environment === 'test') {
    // Testem prefers this...
    ENV.locationType = 'none';

    // keep test console output quieter
    ENV.APP.LOG_ACTIVE_GENERATION = false;
    ENV.APP.LOG_VIEW_LOOKUPS = false;

    ENV.APP.rootElement = '#ember-testing';
  }

  if (environment === 'production') {

  }

  return ENV;
};

应用程序/的package.json

{
  "name": "doe-site",
  "version": "0.0.0",
  "private": true,
  "description": "Small description for doe-site goes here",
  "license": "MIT",
  "author": "",
  "directories": {
    "doc": "doc",
    "test": "tests"
  },
  "repository": "",
  "scripts": {
    "build": "ember build",
    "start": "ember server",
    "test": "ember test"
  },
  "devDependencies": {
    "broccoli-asset-rev": "^2.4.5",
    "ember-ajax": "^3.0.0",
    "ember-cli": "~2.15.1",
    "ember-cli-app-version": "^3.0.0",
    "ember-cli-babel": "^6.3.0",
    "ember-cli-dependency-checker": "^2.0.0",
    "ember-cli-eslint": "^4.0.0",
    "ember-cli-htmlbars": "^2.0.1",
    "ember-cli-htmlbars-inline-precompile": "^1.0.0",
    "ember-cli-inject-live-reload": "^1.4.1",
    "ember-cli-qunit": "^4.0.0",
    "ember-cli-shims": "^1.1.0",
    "ember-cli-sri": "^2.1.0",
    "ember-cli-uglify": "^1.2.0",
    "ember-data": "~2.15.0",
    "ember-export-application-global": "^2.0.0",
    "ember-load-initializers": "^1.0.0",
    "ember-resolver": "^4.0.0",
    "ember-source": "~2.15.0",
    "ember-welcome-page": "^3.0.0",
    "ember-wordpress": "^0.1.7",
    "loader.js": "^4.2.3"
  },
  "engines": {
    "node": "^4.5 || 6.* || >= 7.*"
  }
}

1 个答案:

答案 0 :(得分:0)

如果您的服务器侧载了您的应用程序未知类型的记录,我已经看到了与ember-data 2.15类似的异常。

快速举例:

// response body
{
  "data": {
    "type": "foos",
    "id": "1",
    "relationships": {
      "bar": {
        "data": {
          "id": "1",
          "type": "bars"
        }
      }
    },
  },
  "included": [
    {
      "type": "bars",
      "id": "1"
    }
  ]
}

如果你有一个模型foo但是没有模型bar它会抛出。我还没有时间测试它是否已在最新版本中修复,如果没有则会创建错误报告。

如果您不是这种情况,请提供回复正文。