我是角度JS的新手,我认为我需要帮助。
这是我的问题: 我有一个与表格链接的ng-grid。其中有值和ID(来自另一个表的外键)。我不想显示ID,而是在这个外表中显示另一个字段。
CompanyFactory.getCompanies().success(function (data) { $scope.objs = data })
$scope.gridOptions = {
data: 'objs',
showGroupPanel: true,
jqueryUIDraggable: true,
columnDefs: [
{ field: 'COMP_NAME', displayName: 'comp_name'},
{ field: 'COUNTRY', displayName: 'country' },
{ field: 'LU_SECTOR_ID', displayName: 'sector', },
]
};
我想显示sector_name字段而不是sector_ID字段。如何建立这两个表之间的关系?
$scope.countries = [
{ COMP_NAME: 'KOLI', COUNTRY: 'KOLI_COUNTRY', LU_SECTOR_ID: '1'},
{ COMP_NAME: 'ZOLI', COUNTRY: 'ZOLI_COUNTRY', LU_SECTOR_ID: '2'},
{ COMP_NAME: 'TULI', COUNTRY: 'TULI_COUNTRY', LU_SECTOR_ID: '3'},
];
$scope.sector= [
{ LU_SECTOR_ID: '1', LU_SECTOR_NAME: 'SECTOR_1'},
{ LU_SECTOR_ID: '2', LU_SECTOR_NAME: 'SECTOR_2'},
{ LU_SECTOR_ID: '3', LU_SECTOR_NAME: 'SECTOR_3'},
];
我想在ng-grid中显示SECTOR NAME而不是SECTOR_ID。
答案 0 :(得分:0)
问题出在这里
{ field: 'LU_SECTOR_ID', displayName: 'sector', }
特别是
LU_SECTOR_ID
您需要将此变量的名称更改为objs上的名称而不是id
答案 1 :(得分:0)
如果没有data
对象的信息,很难回答这个问题。
但是,假设您的data
返回的CompanyFactory
对象类似于:
[
{
"COMP_NAME": "Tomms",
"COUNTRY": "France",
"LU_SECTOR_ID": "9":,
"SECTOR": { "SECTOR_NAME": "IT" }
}
]
您只需要绑定正确的字段:
$scope.gridOptions = {
data: 'objs',
showGroupPanel: true,
jqueryUIDraggable: true,
columnDefs: [
{ field: 'COMP_NAME', displayName: 'comp_name'},
{ field: 'COUNTRY', displayName: 'country' },
// Here
{ field: 'SECTOR.SECTOR_NAME', displayName: 'sector', },
]
};
但是,如果您将两个对象分开,则需要手动链接它。我的建议是在服务器端执行该操作并返回像我用作示例的对象。