资源不引用相同的相关资源
Resources not referencing the same related resource
我定义了两个资源 - Foo 和 Bar - 其中 Foo 包含一个栏。但是,当以这种格式插入一些基本数据时,如果多个 Foo 引用相同的 Bar,则只有最近加载的 Foo 给出了对它的引用。以前的 Foo 没有 Bar(未定义。)
资源定义如下:
DS.defineResource({
name: 'Foo',
relations: {
hasOne: {
Bar: {
foreignKey: 'fooId',
localField: 'bar'
}
}
}
});
DS.defineResource({
name: 'Bar',
relations: {
belongsTo: {
Foo: {
localField: "foo",
localKey: "fooId"
}
}
}
});
我正在注入以下测试数据:
var foosJson = [
{
id: 1,
bar: {
id: 100
}
}, {
id: 2,
bar: {
id: 100
}
}, {
id: 3,
bar: {
id: 200
}
}
];
为什么第一个 Foo 没有引用与第二个 Foo 相同的 Bar?
Fiddle 此处使用 Jasmine 测试:http://jsfiddle.net/dimmreaper/c0o1kqd0/
它不起作用,因为看起来您实际上是在尝试建立多对多关系。 "bar belongsTo foo" 意味着任何单独的条形图(至多)恰好属于 one foo,但在这里您试图让条形图 #100 既属于 foo #1 又属于 foo # 2,这不是 belongsTo 关系。
由于每个条实际上没有 localKey
期望的字段 (fooId
),JSData 试图为您推断字段,并且由于迭代的工作方式,JSData 推断bar #100 属于 foo #2,所以 foo1.bar
将是 undefined
.
我定义了两个资源 - Foo 和 Bar - 其中 Foo 包含一个栏。但是,当以这种格式插入一些基本数据时,如果多个 Foo 引用相同的 Bar,则只有最近加载的 Foo 给出了对它的引用。以前的 Foo 没有 Bar(未定义。)
资源定义如下:
DS.defineResource({
name: 'Foo',
relations: {
hasOne: {
Bar: {
foreignKey: 'fooId',
localField: 'bar'
}
}
}
});
DS.defineResource({
name: 'Bar',
relations: {
belongsTo: {
Foo: {
localField: "foo",
localKey: "fooId"
}
}
}
});
我正在注入以下测试数据:
var foosJson = [
{
id: 1,
bar: {
id: 100
}
}, {
id: 2,
bar: {
id: 100
}
}, {
id: 3,
bar: {
id: 200
}
}
];
为什么第一个 Foo 没有引用与第二个 Foo 相同的 Bar?
Fiddle 此处使用 Jasmine 测试:http://jsfiddle.net/dimmreaper/c0o1kqd0/
它不起作用,因为看起来您实际上是在尝试建立多对多关系。 "bar belongsTo foo" 意味着任何单独的条形图(至多)恰好属于 one foo,但在这里您试图让条形图 #100 既属于 foo #1 又属于 foo # 2,这不是 belongsTo 关系。
由于每个条实际上没有 localKey
期望的字段 (fooId
),JSData 试图为您推断字段,并且由于迭代的工作方式,JSData 推断bar #100 属于 foo #2,所以 foo1.bar
将是 undefined
.