Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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 从组件加载模型_Javascript_D3.js_Ember.js_Ember Data_Ember Cli - Fatal编程技术网

Javascript 从组件加载模型

Javascript 从组件加载模型,javascript,d3.js,ember.js,ember-data,ember-cli,Javascript,D3.js,Ember.js,Ember Data,Ember Cli,我正在尝试使用Ember.js显示图表。我尝试从组件“multiple line.js”加载模型中的数据,如下所示: 路线 model: function() { return this.store.findAll('dataset'); } 模型/dataset.js App.Dataset = DS.Model.extend({ key: DS.attr('string'), values: DS.hasMany('value',{async: true}) }); Ap

我正在尝试使用Ember.js显示图表。我尝试从组件“multiple line.js”加载模型中的数据,如下所示:

路线

model: function() {
    return this.store.findAll('dataset');
}
模型/dataset.js

App.Dataset = DS.Model.extend({
  key: DS.attr('string'),
  values: DS.hasMany('value',{async: true})
});
App.Value = DS.Model.extend({
  datasets: DS.belongsTo('dataset',{async: true}),
  xValue: DS.attr('number'),
  yValue: DS.attr('number') 
});
module.exports = function(app) {
  var express = require('express');
  var datagroupRouter = express.Router();

  datagroupRouter.get('/', function(req, res) {
    res.send({
      'dataset': [
          {
          id: 1,
          key: "Cbio",
          values: [
              {
              id: 1,
              "xValue": 1,
              "yValue": 21
              },
              {
              id: 2,
              "xValue": 20,
              "yValue": 150
              },
              {
              id: 3,
              "xValue": 40,
              "yValue": 200
              },
Models/value.js

App.Dataset = DS.Model.extend({
  key: DS.attr('string'),
  values: DS.hasMany('value',{async: true})
});
App.Value = DS.Model.extend({
  datasets: DS.belongsTo('dataset',{async: true}),
  xValue: DS.attr('number'),
  yValue: DS.attr('number') 
});
module.exports = function(app) {
  var express = require('express');
  var datagroupRouter = express.Router();

  datagroupRouter.get('/', function(req, res) {
    res.send({
      'dataset': [
          {
          id: 1,
          key: "Cbio",
          values: [
              {
              id: 1,
              "xValue": 1,
              "yValue": 21
              },
              {
              id: 2,
              "xValue": 20,
              "yValue": 150
              },
              {
              id: 3,
              "xValue": 40,
              "yValue": 200
              },
适配器/Application.js 首先:

import DS from 'ember-data';

export default DS.RESTAdapter.extend({
    shouldReloadAll() { return true; }
});
Server/Mocks/Datagroup.js

App.Dataset = DS.Model.extend({
  key: DS.attr('string'),
  values: DS.hasMany('value',{async: true})
});
App.Value = DS.Model.extend({
  datasets: DS.belongsTo('dataset',{async: true}),
  xValue: DS.attr('number'),
  yValue: DS.attr('number') 
});
module.exports = function(app) {
  var express = require('express');
  var datagroupRouter = express.Router();

  datagroupRouter.get('/', function(req, res) {
    res.send({
      'dataset': [
          {
          id: 1,
          key: "Cbio",
          values: [
              {
              id: 1,
              "xValue": 1,
              "yValue": 21
              },
              {
              id: 2,
              "xValue": 20,
              "yValue": 150
              },
              {
              id: 3,
              "xValue": 40,
              "yValue": 200
              },

在组件中显示我的D3.js图表时,我没有合并所有代码。那么,我如何才能正确地为这个应用程序使用Model/Adapter/Route/Component呢。下面是一个。

您的JsBin不包含
ember data.js
,因此它永远不会运行。此外,您的数据结构相当复杂。我建议从更简单的模型开始,然后增加复杂性。您将模型传递给组件的方式是正确的,但应用程序适配器返回的对象与您的模型不匹配。如何将模型与适配器匹配?这实际上取决于您使用的适配器类型。您可以选择使用
RESTAdapater
()或
JSONAPIAdapter
()。Ember data 2.0建议使用JSON API适配器,该适配器实现JSON API规范()。您的JsBin不包含
Ember data.js
,因此它永远不会运行。此外,您的数据结构相当复杂。我建议从更简单的模型开始,然后增加复杂性。您将模型传递给组件的方式是正确的,但应用程序适配器返回的对象与您的模型不匹配。如何将模型与适配器匹配?这实际上取决于您使用的适配器类型。您可以选择使用
RESTAdapater
()或
JSONAPIAdapter
()。Ember data 2.0建议使用JSON API适配器,该适配器实现JSON API规范()。