AngularJS非ascii属性名支持

AngularJS非ascii属性名支持,angularjs,utf-8,non-ascii-characters,Angularjs,Utf 8,Non Ascii Characters,我不知道如何在AngularJS中使用非ascii属性名。我可以使用a['property\u name']而不是a.property\u name打印值,但在“orderBy”中不能使用相同的方法。如果我单击“名称”,将进行排序,但如果我单击“名称”가격_价格),不会发生任何事情,并且控制台中会显示错误。如何对具有非ascii名称的表进行排序 (代码中有韩语字符,但我认为这是有道理的。) 名称 가격(价格) {{item.name} {{项目['가격_价格']} 函数ListCtrl($s

我不知道如何在AngularJS中使用非ascii属性名。我可以使用
a['property\u name']
而不是
a.property\u name
打印值,但在“orderBy”中不能使用相同的方法。如果我单击“名称”,将进行排序,但如果我单击“名称”가격_价格),不会发生任何事情,并且控制台中会显示错误。如何对具有非ascii名称的表进行排序

(代码中有韩语字符,但我认为这是有道理的。)


名称
가격(价格)
{{item.name}
{{项目['가격_价格']}
函数ListCtrl($scope,$http){
$scope.predicate='-name';
$scope.items=[{name:“a”,가격_价格:“1000”},
{名称:“b”,가격_价格:“2000”},
{名称:“c”,가격_价格:“1500”}];
}

虽然这是Angular的一个问题,但可以通过在作用域上指定自己的谓词函数来解决,以便访问要排序的属性:

$scope.predicateProperty = 'name';
$scope.predicate = function(a) {
    return a[$scope.predicateProperty];
};
HTML可以几乎相同,只需将
predicateProperty
设置为要排序的属性名(我还删除了对“reverse”的引用,因为这会使问题稍微复杂化)



为什么需要混合英语和韩语的属性名?作为一个人,我可以告诉你:它看起来很丑陋。。。为什么你认为你的财产名称中必须有这些符号?我的母语与英语相差很远,但我对所有东西的英文名称都没有任何问题该对象不是我创建的,因此我必须手动更改属性名称,除非我找到解决此问题的方法,我把英语和韩语混在一起是因为我担心那些没有韩语字体的人。目前不可能(这里正在讨论:)。目前看来,您唯一的选择似乎是在检索数据时对其进行预处理,以便您的键位于可接受的字符中。(当然,除非您想构建自己版本的内置指令——但我不建议这样做。)
$scope.predicateProperty = 'name';
$scope.predicate = function(a) {
    return a[$scope.predicateProperty];
};
<table>
    <tr>
        <th><a ng-click="predicateProperty='name';">name</a></th>
        <th><a ng-click="predicateProperty='가격_price';">가격(price)</a></th>
    </tr>
    <tr ng-repeat="item in items | orderBy:predicate">
        <td>{{item.name}}</td>
        <td>{{item['가격_price']}}</td>
    </tr>
</table>