Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.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
Angular 如何预防';按字母顺序自动排序对象属性';有棱角的?_Angular_Typescript_Sorting_Object - Fatal编程技术网

Angular 如何预防';按字母顺序自动排序对象属性';有棱角的?

Angular 如何预防';按字母顺序自动排序对象属性';有棱角的?,angular,typescript,sorting,object,Angular,Typescript,Sorting,Object,我正在用定义了未排序键的angular初始化一个对象,但当我在html上打印它时,它会自动更改为字母顺序 我尝试使用tslint.json来设置如下规则 { "extends": ["tslint:recommended"], "rules": { "object-literal-sort-keys": false } } 以及 "jsRules":{ "object-literal-sort-keys": false, } 但对预期产出没有

我正在用定义了未排序键的angular初始化一个对象,但当我在html上打印它时,它会自动更改为字母顺序

我尝试使用
tslint.json
来设置如下规则

{
    "extends": ["tslint:recommended"],
    "rules": {
        "object-literal-sort-keys": false 
    }
}
以及

"jsRules":{
    "object-literal-sort-keys": false,
}
但对预期产出没有任何影响

在App.component.ts中初始化对象

abc: Object = {'State': 'asd', '1': 'roshan', '2': 'ramanuj', 'city': 252};
app.component.html

<div>{{ abc | json }}</div>
{{abc|json}

我期望输出是
{“State”:“asd”,“1”:“roshan”,“2”:“ramanuj”,“city”:252}
,但实际输出是
{“1”:“roshan”,“2”:“ramanuj”,“State”:“asd”,“city”:252}
您使用的是
JS对象,根据
定义,该对象不符合顺序。将其视为一个
键=>值映射
,因此
创建一个对象数组


您应该使用一个数组,该数组将保留您在索引中插入的内容。把它想象成一张清单

您应该在这里定义一个数组

abc=[{name:'Ramesh'},{name:'asd'},{name:'avinash'},{name:252}]

使用
ngFor
打印它


{{item.name}

我想你不理解我的问题,问题不在于名称问题,为什么打印时键会自动排序与initializeIn JS object不同,遍历时会枚举键,它会由JS自动排序。在您的例子中,键是数字和字符串。如果需要解决问题,则需要更好的数据结构。您应该在这里使用数组。作为参考,你可以看一看,我觉得我的例子让人困惑,无法分析实际问题我在编辑我的例子你在初始化一个对象,而不是使用数组初始化。我先定义
state
属性,但在实际结果中,为什么总是先给出一个数字而不是字母属性?Viven对象只是长列表的一部分,它动态绑定的角度与对象属性的流顺序相同,但它会自动更改顺序,绑定流也会更改。
数组
而不是
对象
这是我的替代解决方案,因为给定对象是数组的一部分,但我需要找到为什么先给出数字而不是字母键的原因objectNote tslint与运行时行为无关,它只是一组规则,您的编辑器(如vscode)在编码时使用这些规则向您提供错误/警告。是的,我知道这一点,但我尝试了它,因为我假设它可能会影响编译时更改并获得输出,但它不会产生效果。但是这种执行顺序我无法检测到,但是tslint对编译器也没有影响。这仅仅是在编码时给编码人员反馈。我知道这是太平洋语言编码标准的目的地,如ES、TS、JS等,编辑器可以用于文档格式化