Angular JS替换ng grid的值

时间:2014-06-26 15:38:39

标签: javascript angularjs ng-grid

我是角度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。

2 个答案:

答案 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', },
        ]

};

但是,如果您将两个对象分开,则需要手动链接它。我的建议是在服务器端执行该操作并返回像我用作示例的对象。