Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我如何通过json';在使用ng repeat循环通过相同的json时的属性?_Javascript_Angularjs_Json_Ng Repeat - Fatal编程技术网

Javascript 我如何通过json';在使用ng repeat循环通过相同的json时的属性?

Javascript 我如何通过json';在使用ng repeat循环通过相同的json时的属性?,javascript,angularjs,json,ng-repeat,Javascript,Angularjs,Json,Ng Repeat,html:- <div class="question" ng-repeat="x in asdf"> <p >{{x}}</p> </div> 这就是我要做的,按日期排序(日期是json中的一个属性) {x} 也试过 <div class="question" ng-repeat="x in asdf | orderBy : x.date"> <div class="question" ng-repeat=

html:-

<div class="question" ng-repeat="x in asdf">
        <p >{{x}}</p>
</div>
这就是我要做的,按日期排序(日期是json中的一个属性)


{x}

也试过

<div class="question" ng-repeat="x in asdf | orderBy : x.date">
<div class="question" ng-repeat="x in asdf | orderBy : asdf.date">

似乎什么都不管用

1-为什么这不可能

2-我应该做些什么来获得类似的结果


注意-我想用class=“question”重复特定div,不想创建另一个div。

在本例中,orderBy filter参数必须是字符串。因此,这应该是可行的:

<div class="question" ng-repeat="x in asdf | orderBy : 'date'">
    <p>{{x}}</p>
</div>

{{x}

以下是文档中的解释:

字符串:一个有角度的表达式。将对该表达式求值 并将结果用于排序。对于 例如,使用“label”按名为label或的属性进行排序 “label.substring(0,3)”按标签的前3个字符排序 财产。(常量表达式的结果被解释为 用于比较的属性名称。例如,使用“特殊” 将名称命名为“”(注意额外的一对引号)以按名为 特殊名称。)

编辑:但orderBy筛选器仅适用于数组(或类似数组的对象)

集合可以是数组或类似数组的对象(例如节点列表、, jQuery对象、类型(数组、字符串等)

因此,您首先需要将数据放入不同的结构中,或者使用自定义解决方案对其进行排序。例如:


在本例中,orderBy筛选器参数必须是字符串。因此,这应该是可行的:

<div class="question" ng-repeat="x in asdf | orderBy : 'date'">
    <p>{{x}}</p>
</div>

{{x}

以下是文档中的解释:

字符串:一个有角度的表达式。将对该表达式求值 并将结果用于排序。对于 例如,使用“label”按名为label或的属性进行排序 “label.substring(0,3)”按标签的前3个字符排序 财产。(常量表达式的结果被解释为 用于比较的属性名称。例如,使用“特殊” 将名称命名为“”(注意额外的一对引号)以按名为 特殊名称。)

编辑:但orderBy筛选器仅适用于数组(或类似数组的对象)

集合可以是数组或类似数组的对象(例如节点列表、, jQuery对象、类型(数组、字符串等)

因此,您首先需要将数据放入不同的结构中,或者使用自定义解决方案对其进行排序。例如:


这不是JSON。JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么您就没有处理JSON。进一步推断,JavaScript对象(即您拥有的对象)不可排序,因此您无法对其进行排序。为什么不将分配给
$scope.asdf
的对象设为数组,而不是对象?@Dellirium:,这不再是真的,但事实上它不再是真的,这并不是特别有用,所以…:-)@Ankurmawaha:没关系,它不是JSON。这是一个对象初始值设定项。是吗?JSON——用于数据交换的文本符号——是JavaScript对象初始值设定项语法的子集。我的观点不是你必须改变任何事情。别再把它当作JSON了。在源代码中,如果它不是字符串,那么它就不是JSON。这不是JSON。JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么您就没有处理JSON。进一步推断,JavaScript对象(即您拥有的对象)不可排序,因此您无法对其进行排序。为什么不将分配给
$scope.asdf
的对象设为数组,而不是对象?@Dellirium:,这不再是真的,但事实上它不再是真的,这并不是特别有用,所以…:-)@Ankurmawaha:没关系,它不是JSON。这是一个对象初始值设定项。是吗?JSON——用于数据交换的文本符号——是JavaScript对象初始值设定项语法的子集。我的观点不是你必须改变任何事情。别再把它当作JSON了。在你的源代码中,如果不是字符串,就不是JSON。在这种情况下,这不起作用,你能给出一个工作的代码片段吗?啊,对不起,我的错误,orderBy筛选器只在数组上工作。在这种情况下,这不起作用,你能给出一个工作的代码片段吗?啊,对不起,我的错误,orderBy筛选器只在数组上工作。
<div class="question" ng-repeat="x in asdf | orderBy : 'date'">
    <p>{{x}}</p>
</div>