Angularjs 迭代以';开头的JSON键$';在角js中
我试图通过迭代来显示json对象的键值。 这是我的密码Angularjs 迭代以';开头的JSON键$';在角js中,angularjs,Angularjs,我试图通过迭代来显示json对象的键值。 这是我的密码 <html ng-app> <head> <script data-require="angular.js@1.6.0" data-semver="1.6.0" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.0/angular.js"></script> <link rel="s
<html ng-app>
<head>
<script data-require="angular.js@1.6.0" data-semver="1.6.0" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.0/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body ng-init='x = {"$xy":"boost-combinations@$q,article,false,10"}'>
<li ng-repeat="(k,v) in x">{{k}} : {{v}}</li>
<h1>Hello Plunker!</h1>
</body>
</html>
{{k}:{{v}
你好,普朗克!
我只想显示为$xy:boost组合@$q,article,false,10。这是不可能的。忽略所有$和$$字符。如果您看到角度源的ngRepeat.js,您可以阅读此信息
*`ngRepeat` will silently *ignore* object keys starting with `$`, because
* it's a prefix used by Angular for public (`$`) and private (`$$`) properties.
不幸的是,angular忽略以“$”开头的键作为默认行为 我想最直接的重写方法是实现您自己的函数,该函数从对象创建一个数组并迭代:
<body ng-init='x = {"$xy":"boost-combinations@$q,article,false,10"}'>
<li ng-repeat="item in fix(x)">{{item.k}} : {{item.v}}</li>
这对我很有效-
<div ng-init='y = [{ "$xy": "boost-combinations@$q,article,false,10" }]'>
<div ng-repeat="(k, v) in y">
{{v}}
</div>
</div>
{{v}
或
{{y}
它给出了迭代已达到最大摘要的错误,然后中止执行:angular.js:error:[$rootScope:infdig]10$digest()迭代已达到。流产!好的,您应该(为了性能)只在x更改=>$scope.$watch('x',function(oldV,newV){if(oldV!==newV{$scope.xFixed=fix(newV)….
时在手表中执行此操作,然后在“xFixed”上迭代,而不是直接应用该函数
<div ng-init='y = [{ "$xy": "boost-combinations@$q,article,false,10" }]'>
<div ng-repeat="(k, v) in y">
{{v}}
</div>
</div>
<div ng-init='y = { "$xy": "boost-combinations@$q,article,false,10" }'>
{{y}}
</div>