2015-11-13 29 views
2

緊張地問這個問題..恨得到downvoted ..但它是什麼,我已經搜索並找不到解決方案。將列值轉換爲ng-repeat中的映射值

我最終做的是添加一個循環,通過我的searchResults並在服務返回成功塊內部後重新分配列的值(這裏是PSEUDO代碼,我無法複製和粘貼我的實際代碼,在那裏在氣隙):

var myNumberMap = { 
    1: "Number ONE!!", 
    2: "Number TWO!!", 
    3: "Number THREE!!!" 
} 

$scope.getSearchResults = function() { 
    $q.all({ 
     resultSet : searchService.getSearchResults() 
}).then(function(resultData) { 
    searchResults = resultData.resultSet; 
    for(var i = 0; i < searchResults.length; i++) { 
     searchResults[i].number = myNumberMap[searchResults[i].number]; 
    } 
} 
} 

我真的很希望有一些華而不實的方式,我可能只是分配數據結果網格配置中值是在地圖的價值?

喜歡的東西:

$scope.myCoolGridConfig = NgGridConfig.getConfig(
    NgGridConfig.getDefaultConfig(), { 
    data: 'searchModel.searchResults.list', 
    columnDefs: [ 
    field: 'number', 
    displayName: 'Number', 
    value: myNumberMap[searchModel.searchResults.list.number] 
    ] 
} 

) 
+0

你能後的服務電話和'$ scope'分配?還有從通話中收到的數據的日誌? – tymeJV

回答

1

如果我正確地相互滲透的問題你想找的東西沿着這些路線。

myMap = { 
    1 : "String One", 
    2 : "String Two", 
    3 : "String Three" 
}; 

如果山坳數爲1個顯示串的一個,而不是一個表中的

使用MYMAP,尋找山坳道具中它拉字符串值

<table> 
    <tr ng-repeat="col in tempCols"> 
     <td>{{col}}</td> 
     <td>{{myMap[col]}}</td> 
    </tr> 
</table> 

如果您需要對沒有定義索引的對象(如下面的對象)執行此操作。

$scope.objectData = [{ 
    name: "test1", 
}, 
{ 
    name: "test1", 
}, 
{ 
    name: "test1", 
}, 
{ 
    name: "test1", 
}, 
{ 
    name: "test1", 
}, 
] 

您可以通過$索引+ 1

<table> 
     <tr> 
     <td> Column Converted</td> 
     <td> Object name value</td> 
     <tr ng-repeat="col in objectData"> 
     <td>{{myMap[$index + 1]}}</td> 
     <td>{{col.name}}</td> 
     </tr> 
    </table> 

繼承人plunker用於跟蹤它更好的視覺

+0

我沒有使用表格,它是控制器中具有網格配置對象的網格。 – JoGotta

1

有幾個方法,你可以採取這裏:

  1. 創建一個custom filter,將其應用於ng-repeat以基於在你的地圖上。

  2. 將您的值映射存儲在角度控制器中,並將映射的值綁定到DOM。

    // Controller 
    $scope.myMap = { 
        1 : "String One", 
        2 : "String Two", 
        3 : "String Three" 
    } 
    
    // something.html 
    <div ng-repeat='num in numList'> 
        {{myMap[num]}} 
    </div> 
    
+0

對不起,我猜想使用僞代碼我不清楚。在ngGridConfig對象中定義了幾個列。其中一列是假設命名的數字..當我使用ngGridConfigObject作爲顯示模板對queryResults執行ng重複操作時,我想顯示給定數字的字符串表示形式。你的回答確實使我想到在服務調用的成功塊中進行翻譯。 – JoGotta

+0

是在成功中格式化數據是一種有效的方法。 –