Javascript 从组件加载模型
我正在尝试使用Ember.js显示图表。我尝试从组件“multiple line.js”加载模型中的数据,如下所示: 路线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
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规范()。