javascriptオブジェクトを反復している空のng-repeatのために、デフォルトのテキストを表示するときに問題が発生しました。通常は私は<div ng-show="object.length==0">EMPTY SET</div>"
を実行しますが、javascriptオブジェクトでlengthを呼び出すことはできません。私は問題を示すために単純なjsfiddleを持っています:http://jsfiddle.net/C4t4LystX/zHJv8/8/。基本的には、ng-repeatが何度も繰り返すオブジェクトがないことを知る必要があるので、デフォルトのテキストを表示することができます。助けてくれてありがとう。angularjs javascriptオブジェクトの空のng-repeatのデフォルトテキスト
13
A
答えて
16
を、JavaScriptで何object.lengthはありません。ソースを空のオブジェクトにリセットするので、オブジェクトが空であるか、何らかのソースがあるかどうかを確認する必要があります。 isEmptyという単純な関数を書くことができます。
<div ng-show="isEmpty(sources)">
EMPTY SOURCES
</div>
function Ctrl1($scope) {
$scope.sources = {source1:{id:"source1"},source2:{id:"source2"}};
$scope.cleanSources = function(){
$scope.sources = {};
};
$scope.isEmpty = function (obj) {
return angular.equals({},obj);
};
}
EDIT:のisEmpty変更ではなく、各ループのためのangular.equalsを使用します。
1
ng-showはブール式から動作するので、セットが空のときは何かをtrueに設定し、何かがあるときはfalseに設定するだけです。ここではそれを行うための一つの方法とフィドルだ:
ここでアイデアです:
$scope.cleanSources = function(){
$scope.sources = {};
$scope.empty = true;
};
そして、ここでは作業フィドルです: http://jsfiddle.net/J38r2/
この方法は、直接ソースが空であるかどうかをテストするものではありません。あなたは可能性があることを行うには:
http://jsfiddle.net/timothybone/HXgbR/4/
そしてもちろんのドキュメントが同じ考えを示しています。あなたが正しい http://docs.angularjs.org/api/ng.directive:ngShow
+0
もちろん、何らかの理由でソースが再投入された場合でも、$ scope.emptyをfalseに設定する必要があります。 – eterps
関連する問題
- 1. AngularJS ngRepeat更新モデル
- 2. tumblrのようなテキストフィールドのJavascriptのデフォルトテキスト
- 3. 角度ngRepeatと空の入力
- 4. AngularJS/javascript javascriptオブジェクトの特殊なソート順
- 5. wpfラベルのデフォルトテキスト
- 6. Androidスピナーセットのデフォルトテキスト
- 7. オブジェクトの配列上にインラインngRepeat
- 8. Javascript/AngularJSの名前空間イベント?
- 9. AngularJS - ngRepeatを使用したドロップダウンメニュー
- 10. はAngularJS ngRepeatディレクティブでコレクション名を取得
- 11. AngularjsでngRepeatを発行すると、
- 12. angularJSのngrepeatの奇妙な振る舞い
- 13. テーブル行のngrepeatチェックボックス
- 14. AngularJS - ngRepeatソーティングは配列の長さを変更します
- 15. コンテンツを取得できません。ngrepeat内のAngularJs動的ポップオーバー
- 16. Javascriptの空の配列オブジェクトとURLパラメータ
- 17. silverlightの検索テキストボックスのデフォルトテキスト
- 18. ngRepeat orderedBy
- 19. Angularjs:空のオブジェクトです(クリックが1回のみの場合)?
- 20. AngularJs空の結果
- 21. 角度ngrepeatのトグルボタン
- 22. ngRepeatは、オブジェクトのプロパティに依存してHTML要素を作成します
- 23. CSS付きデフォルトテキスト
- 24. なぜorderByがangularjsのngrepeatで動作していないのですか?
- 25. anglejsディレクティブ内のngRepeatの$ index
- 26. angularjs $ location.searchは空のオブジェクトを返します
- 27. $ stateParamsはangularjsに空のオブジェクトを返します
- 28. Angular ngRepeat - ラジオボタンを含む複数のオブジェクトを持つ方法
- 29. ngRepeat(AngularJS)でクリックハンドラを繰り返す方法は?
- 30. 入力テキストが空の場合にデフォルトテキストを設定する方法は?
あなたはおそらくisEmpty関数を次のように書くことができます:return angular.equals({}、obj);それを1ライナーに変えます。 –
そうですよ!回答が更新されました。 – eterps
これはなぜ動作しないのですか?つまり、angular.equals()の呼び出しをインラインしようとしていますか?