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="

我有两张桌子:

  • 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="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
});