当前位置: 首页 > 面试题库 >

在Angular JS中跳过ng-repeat JSON排序

徐涵亮
2023-03-14
问题内容

有谁知道当我使用ng-repeat时如何完全 跳过 JSON排序(可能以一种轻松的方式)?

例如,我的源JSON看起来像这样-

{
   "title": "Title",
   "description": "Description",
   "moreInfo": "Moreinformation"
}

一旦在ng-repeat中使用它,它就会按字母顺序排序。像这样-

{
   "description": "Descripthtml" target="_blank">ion",
   "moreInfo": "Moreinformation",
   "title": "Title"
}

我的ng-repeat看起来像这样-

<div ng-repeat="(key,data) in items">
   <span class="one"> {{key}} </span>
   <span class="two"> {{data}} </span>
</div>

我见过人们有一个单独的键数组,并使用它们来标识JSON对象,最终避免了字母排序。

有没有一种优雅的方法可以做到这一点?


问题答案:

在Google网上论坛找到了不错的解决方法:

    <div ng-repeat="key in notSorted(data)" ng-init="value = data[key]">
         <pre>
               key: {{key}}
               value: {{value}}
         </pre>           
    </div>

范围:

    $scope.data = {
        'key4': 'data4',
        'key1': 'data1',
        'key3': 'data3',
        'key2': 'data2',
        'key5': 'data5'
    };

    $scope.notSorted = function(obj){
        if (!obj) {
            return [];
        }
        return Object.keys(obj);
    }

工作:http://jsfiddle.net/DnEXC/

原文:https://groups.google.com/forum/#!topic
/
angular /
N87uqMfwcTs



 类似资料:
  • 问题内容: 我有一个HTML表格,想通过单击表格标题(在ctrl中)对记录(在ctrl中)进行排序, 任何人都可以解释为什么这样做有效: 那不是: 这是记录的代码: 我的表格中有58列,因此遍历表格标题会更好。 问题答案: 正如David所建议的,这可能与范围有关。由于ngRepeat创建了一个新的作用域,因此您需要为每个列标题设置和。 确保您在同一范围内修改值的一种方法是在该范围内创建一个函数,

  • 问题内容: 这是我不工作的演示 模型保持不变。如何同步?请注意,数据结构很重要。 问题答案: 的结合将评估在当前范围的表达。作为创建一个子范围,这意味着将寻找一个命名属性的子范畴。在您的示例中,我们希望它在 父 范围内查找属性,该属性的别名为。 这是设计使然,可以通过引用表达式中的父范围来避免这种情况。 工作演示 代码(注意输入元素上的绑定已更改): 当您使用Angular 1.3的Beta版时,

  • 问题内容: 我想跳过ng-repeat中的第一项 它不起作用,这里有什么问题吗? 我知道我可以使用ng-if,ng-show来隐藏东西,但是我无法理解为什么在这种情况下过滤器在1.3.x中不起作用。 谢谢。 问题答案:

  • 问题内容: 我有2个html页面,以及这两者都是“插入”到通过在URL dependending 属性和路由器供应商,作为我的AngularJS应用程序的一部分。 可以在AngularJS主页 的“连接后端” 下找到一个示例。 我的问题 :有没有办法动画化和之间的过渡? 问题答案: Angularjs 1.1.4现在引入了该指令以帮助动画化不同的元素,尤其是ng- view。 您也可以观看有关此新

  • 问题内容: 是否可以为ng-click编写拦截器?我有一个按钮或链接,导致后端对象的删除。我想通过将属性添加到按钮/链接来创建一个确认对话框(模式)。例如: AngularJS有可能吗?有没有更好的方法可以解决此问题? 编辑 deleteIt方法驻留在不同的控制器中。 谢谢 问题答案: 我在下面放了一个示例指令: http://plnkr.co/edit/GJwK7ldGa9LY90bMuOfl?

  • 我想比较一下id,这里,如果id等于5,做这个,否则做那个。我怎样才能做到这一点?