ng-repeat不使用键值对
示例
<div ng-repeat="(key, value) in values">{{key}}</div>
其中值等于
$scope.values = {
$firstName:"Kusum";
lastName:"Kumari"
}
它打印lastNAme
,但$firstName
失败。
答案 0 :(得分:2)
像
一样访问它{{Obj["$firstName"]}}
注意:double
quotes
答案 1 :(得分: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]
}
}
}
}
答案 2 :(得分:1)
您正在以错误的方式构建变量。这是一个有效的例子。
angular.module('app', [])
.controller('Controller', function($scope) {
$scope.values = [];
$scope.values[0]= {};
$scope.values[0] = {
$firstName:"Kusum",
lastName:"Kumari"
}
});
&#13;
<!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>
&#13;
答案 3 :(得分:0)
您可以使用Object.keys
和返回Array
的方法,您可以迭代。即。
$scope.keys = function(value) {
return value ? Object.keys($scope.values):[];
}
您可以在模板中使用此keys
变量
<div ng-repeat="key in keys(values)">
{{key}} : {{values[key]}}
</div>