AngularJS 非 ascii 属性 名称支持
AngularJS non-ascii property name support
我不知道如何在 AngularJS 中使用非 ascii 属性 名称。我可以使用 a['property_name']
而不是 a.property_name
来打印一个值,但我不能在 'orderBy' 中使用相同的方式。如果我点击 'name',排序会发生,但如果我点击 '가격_price',什么也不会发生,并且控制台中会显示错误。我如何对具有非 ascii 名称的 table 进行排序?
(代码中有韩文,但我觉得有道理。)
<div ng-app>
<div ng-controller="ListCtrl">
<table>
<tr>
<th><a ng-click="predicate='name'; reverse=false">name</a></th>
<th><a ng-click="predicate='가격_price'; reverse=false">가격(price)</a></th>
</tr>
<tr ng-repeat="item in items | orderBy:predicate:reverse">
<td>{{item.name}}</td>
<td>{{item['가격_price']}}</td>
</tr>
</table>
</div>
</div>
<script>
function ListCtrl($scope, $http) {
$scope.predicate = '-name';
$scope.items = [{name: "a", 가격_price:"1000"},
{name: "b", 가격_price:"2000"},
{name: "c", 가격_price:"1500"}];
}
</script>
虽然这是 Angular 的问题,但根据 https://github.com/angular/angular.js/issues/2174,可以通过在作用域上指定您自己的谓词函数来解决此问题,以便访问 属性排序依据:
$scope.predicateProperty = 'name';
$scope.predicate = function(a) {
return a[$scope.predicateProperty];
};
而 HTML 可以几乎相同,只需将 predicateProperty
设置为您要排序的 属性 名称(我还删除了对 [=21= 的引用] 因为它使问题稍微复杂化)
<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>
看到这个工作
我不知道如何在 AngularJS 中使用非 ascii 属性 名称。我可以使用 a['property_name']
而不是 a.property_name
来打印一个值,但我不能在 'orderBy' 中使用相同的方式。如果我点击 'name',排序会发生,但如果我点击 '가격_price',什么也不会发生,并且控制台中会显示错误。我如何对具有非 ascii 名称的 table 进行排序?
(代码中有韩文,但我觉得有道理。)
<div ng-app>
<div ng-controller="ListCtrl">
<table>
<tr>
<th><a ng-click="predicate='name'; reverse=false">name</a></th>
<th><a ng-click="predicate='가격_price'; reverse=false">가격(price)</a></th>
</tr>
<tr ng-repeat="item in items | orderBy:predicate:reverse">
<td>{{item.name}}</td>
<td>{{item['가격_price']}}</td>
</tr>
</table>
</div>
</div>
<script>
function ListCtrl($scope, $http) {
$scope.predicate = '-name';
$scope.items = [{name: "a", 가격_price:"1000"},
{name: "b", 가격_price:"2000"},
{name: "c", 가격_price:"1500"}];
}
</script>
虽然这是 Angular 的问题,但根据 https://github.com/angular/angular.js/issues/2174,可以通过在作用域上指定您自己的谓词函数来解决此问题,以便访问 属性排序依据:
$scope.predicateProperty = 'name';
$scope.predicate = function(a) {
return a[$scope.predicateProperty];
};
而 HTML 可以几乎相同,只需将 predicateProperty
设置为您要排序的 属性 名称(我还删除了对 [=21= 的引用] 因为它使问题稍微复杂化)
<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>
看到这个工作