Breezejs と WEBAPI を使用して、各製品にコンポーネントのリストがある製品のリストを取得します。
var list = function (productsObservable) { var query = EntityQuery.from('Products') .expand('components') return manager.executeQuery(query) .then(querySucceeded) .fail(datacontext.queryFailed); function querySucceeded(data) { // process results } } function querySucceeded(data) { productsObservable(data.results); } var productsObservable= ko.observableArray([]);
生の結果には、リストの最初の製品の 3 つのコンポーネントのリストが表示されますが、data.results[0].component() をナビゲートすると、配列にコンポーネントが 1 つだけ表示されます。
/breeze/Breeze/products を参照すると、各製品のすべてのコンポーネントが表示されます。
何か不足していますか?/breeze/Breeze/products を直接呼び出したときに得られる応答は次のとおりです。
{
$id: "1",
$type: "DD.Product, DD_Model",
Id: 1,
Name: "XXXX",
Components: [
{
$id: "2",
$type: "DD.Component, DD_Model",
Id: 1,
Name: "component1"
Product: {
$ref: "1"
},
},
{
$id: "3",
$type: "DD.Component, DD_Model",
Id: 2,
Name: "component2"
Product: {
$ref: "1"
},
},
{
$id: "4",
$type: "DD.Component, DD_Model",
Id: 11,
Name: "component3"
Product: {
$ref: "1"
},
}
],
},
オブジェクトのメタデータは、/breeze/Breeze/metadata を介してサーバーから取得されます