Я хочу выполнить итерацию через myObject
в шаблоне AngularJS
Это не работает:
<ul ng-if="Object.keys(myObject).length">
<li ng-repeat="(key, val) in myObject">
Value at key {{ key }} is: {{ val }}
</li>
</ul>
Ничего не видно, я подозреваю, потому что $scope.Object
не определен.
Вместо этого я сделал это:
В контроллере/директиве:
$scope.sizeOf = function(obj) {
return Object.keys(obj).length;
};
В шаблоне:
<ul ng-if="sizeOf(myObject)">
<li ng-repeat="(key, val) in myObject">
Value at key {{ key }} is: {{ val }}
</li>
</ul>
Мне не нравится это решение из-за дублирования этой функции в каждом отдельном контроллере или директиве $scope
.
Вы видите какое-нибудь более чистое решение?
Спасибо!