Javascript 如何在PhoneJs中绑定两个表中的数据?
我有两张桌子:Javascript 如何在PhoneJs中绑定两个表中的数据?,javascript,html,devexpress,datasource,phonejs,Javascript,Html,Devexpress,Datasource,Phonejs,我有两张桌子: nom_article{id(PK),denumire,nom_um_id(FK)} nom_um{id(PK),simbol,denumire} 我想展示: 名为articole.id 名称:denumire 名称:辛波 我的html代码: <div data-options="dxView : { name: 'nom_articoleDetails', title: 'Nom_articole' } " > <div data-options="
{id(PK),denumire,nom_um_id(FK)}nom_article
{id(PK),simbol,denumire}nom_um
- 名为articole.id
- 名称:denumire
- 名称:辛波
<div data-options="dxView : { name: 'nom_articoleDetails', title: 'Nom_articole' } " >
<div data-options="dxContent : { targetPlaceholder: 'content' } " >
<div data-bind="dxScrollView: { }">
<h2 data-bind="text: nom_articole.denumire"></h2>
<div class="dx-fieldset">
<div class="dx-field">
<div class="dx-field-label">ID</div>
<div class="dx-field-value" data-bind="text: nom_articole.id"></div>
</div>
<div class="dx-field">
<div class="dx-field-label">Denumire</div>
<div class="dx-field-value" data-bind="text: nom_articole.denumire"></div>
</div>
<div class="dx-field">
<div class="dx-field-label">U.M.</div>
<div class="dx-field-value" data-bind="text: ????????????????"></div>
</div>
</div>
<div data-options="dxContentPlaceholder : { name: 'view-footer', transition: 'none' } " ></div>
</div>
</div>
此代码由Devexpress多通道应用程序向导生成。根据您提供的信息,如果
nom_article
和nom_um
共享同一密钥,则代码为:
viewShown: function() {
// ... your code ...
MobileApplication.db.nom_um.byKey(params.id).done(function(data) {
nom_articoleDetails.nom_um.fromJS(data);
});
}
您可以取消对nom_um
成员的注释,并使用text:nom_um.simbol
作为视图中的绑定文本
更新:
要通过外键加载对象,有两个选项。第一种是级联回迁:
MobileApplication.db.nom_articole.byKey(19).done(function (data) {
nom_articoleDetails.nom_articole.fromJS(data);
MobileApplication.db.nom_um.byKey(data.nom_um_id).done(function(data) {
nom_articoleDetails.nom_um.fromJS(data);
});
});
如果您的数据服务正确配置了OData,那么第二种方法将起作用。在这种情况下,您可以使用展开功能:
p.S.DevXPress提供支持服务,如果您在此处找不到正确答案,您可以询问他们并分享解决方案。问题出在哪里?此代码是否会导致任何错误?请澄清。不,它在工作,只是我不能将nom_um.simbol绑定到第三个dx字段值。(我不知道如何)谢谢你的回答。我想从第二个表返回,不是按id而是按nom_um_id,类似这样:
viewShowed:function(){nom_articledetails=this;MobileApplication.db.nom_article.byKey(19).done(function(data){nom_articledetails.nom_article.fromJS(data);});MobileApplication.db.nom_um.byKey(MobileApplication.db.nom_article.byKey(19.nom_um_id).done(函数(数据){nom_articledetails.nom_um.fromJS(数据)})}
但它不起作用。感谢您提供更新的答案。我已更改了第一个解决方案中所示的视图,但出现以下错误:“未捕获引用错误:未定义数据”,第41行,文件“”。这里的“数据”是这个序列中的数据“。。。byKey(data.nom_um_id)…'
MobileApplication.db.nom_articole.byKey(19).done(function (data) {
nom_articoleDetails.nom_articole.fromJS(data);
MobileApplication.db.nom_um.byKey(data.nom_um_id).done(function(data) {
nom_articoleDetails.nom_um.fromJS(data);
});
});
MobileApplication.db.nom_articole.byKey(19, { expand: "nom_um" }).done(function (data) {
// data will contain a nested object
});