2017-01-17 46 views
2

NG重複不與鍵值對工作時按鍵有特殊字符($)

爲例

<div ng-repeat="(key, value) in values">{{key}}</div> 

其中值等於

$scope.values = { 
     $firstName:"Kusum"; 
     lastName:"Kumari" 
} 

其打印出lastNAme但未能爲$firstName

+0

您可以發佈您例如JavaScript和HTML片段? –

+1

爲什麼你添加'$'給名字變量? 使用相同的邏輯''scope.values = { 姓氏:「Kusum」, 姓氏:「Kumari」 }'注意:使用','分隔元素不''' – AlainIb

+0

我的json在這裏只有格式,所以我需要這樣處理它.http://plnkr.co/edit/ToP7FgXtsTAwIUOt7V6O?p = preview –

回答

2

訪問它像

{{Obj["$firstName"]}} 

注意:在doublequotes

+0

你能解釋爲什麼嗎? – Mistalis

+0

方括號表示法通常可以包含特殊字符,因爲點表示法不能。 – Thalaivar

+0

作爲迭代的對象是動態的,我不確定,哪個鍵會有這個$符號,所以我需要一個修復,它應該適用於任何東西。 –

1

這是可以預料的,因爲stated in the docs

ngRepeat會忽略這些對象鍵開始$,因爲 這是Angular用於公共($)和私人($$)的前綴屬性。

您可以更改控制器中以$開頭的屬性。

for (var property in $scope.values) { 
    if ($scope.values.hasOwnProperty(property)) { 
     if(property[0] === '$'){ 
      $scope.values["_"+property] = $scope.values[property] 
     } 
    } 
} 

而且可以清潔物體之後

$scope.clean = function(){ 
    for (var property in $scope.values) { 
     if ($scope.values.hasOwnProperty(property)) { 
      if(property[0] === '_'){ 
      console.log($scope.values) 
      delete $scope.values[property] 
      } 
     } 
    } 
    } 

這裏是a working plunker

+0

它是我知道的,但仍然在尋找一些解決方案,因爲我無法避免它。 –

+0

@KusumKushwaha檢查出來 –

+0

感謝您的解決方案,我發現了一個更多的解決方案,請檢查此plunker http://plnkr.co/edit/ToP7FgXtsTAwIUOt7V6O?p=preview –

0

您建立在錯誤的方式變量。這是一個工作示例。

angular.module('app', []) 
 
    .controller('Controller', function($scope) { 
 
    $scope.values = []; 
 
    $scope.values[0]= {}; 
 
    $scope.values[0] = { 
 
     $firstName:"Kusum", 
 
     lastName:"Kumari" 
 
} 
 
    });
<!DOCTYPE html> 
 

 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
    <script src="script.js"></script> 
 
</head> 
 

 
<body ng-app="app"> 
 
    <div ng-controller="Controller"> 
 
    
 

 
     <div ng-repeat="(key, value) in values">{{value.$firstName}}-{{value.lastName}}</div> 
 

 
    
 

 
    </div> 
 
</body> 
 

 
</html>

+0

由於響應是動態的,我不能避免$從關鍵。我需要一個解決方案來儘快解決這個問題。 –

+0

@KusumKushwaha我不是說你應該避免$鑰匙。你只是建立了$ scope.value變量錯誤。檢查你和我的變量之間的區別 –