AngularJS の初心者ですが、次の問題が発生しています。
ng-if
辞書が空かどうかを評価するにはどうすればよいですか?
配列ではうまく機能しますng-if="myArray.length"
が、辞書では機能しません。
Object.keys(myDict).length
編集:動作しないこともすでに試しました。
AngularJS の初心者ですが、次の問題が発生しています。
ng-if
辞書が空かどうかを評価するにはどうすればよいですか?
配列ではうまく機能しますng-if="myArray.length"
が、辞書では機能しません。
Object.keys(myDict).length
編集:動作しないこともすでに試しました。
ng-if はスコープ内の関数を評価することもできます。
例えば:
<div ng-if="functionHere(x)" ></div>
次に、コントローラーで、次のことができます
$scope.functionHere = function(input) { if [logic here]..... }
したがって、ロジックを JavaScript 関数に含めることができれば、ng-if の決定を関数が返すものに委譲することができます。
スコープ関数を使用します。
html:
<div ng-app="myModule" ng-controller="myController">
<div ng-if="!isEmptyObject(myObj)">
<h1>Hello</h1>
</div>
</div>
JavaScript:
angular.module('myModule', [])
.controller('myController', ['$scope', function($scope) {
$scope.isEmptyObject = function(obj) {
for(var prop in obj) {
if(obj.hasOwnProperty(prop))
return false;
}
return true;
}
$scope.myObj = {};
}]);
このフィドルをチェックしてください