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. Javascript/AngularJSの名前空間イベント?
- 4. Androidスピナーセットのデフォルトテキスト
- 5. wpfラベルのデフォルトテキスト
- 6. AngularJs空の結果
- 7. 角度ngrepeatのトグルボタン
- 8. なぜorderByがangularjsのngrepeatで動作していないのですか?
- 9. anglejsディレクティブ内のngRepeatの$ index
- 10. silverlightの検索テキストボックスのデフォルトテキスト
- 11. CSS付きデフォルトテキスト
- 12. angularjs名前空間
- 13. 入力テキストが空の場合にデフォルトテキストを設定する方法は?
- 14. AngularJS表示のjsonオブジェクト
- 15. $ ngRepeatで最初に
- 16. LINQ:空のオブジェクト
- 17. 空のJSオブジェクト
- 18. AngularJSからJavascriptへのイベント
- 19. チェックヌル、空または未定義のangularjs
- 20. angularjsは特定の細胞に焦点を合わせました - ngrepeatの入力セル
- 21. AngularJS ng-repeatオブジェクト
- 22. ngRepeatのequalsは何をしますか?
- 23. ngrepeatの行をグループ化する
- 24. ソート値 - angularJS
- 25. CKEditorのデフォルトテキストを変更する
- 26. パワーポイントvba形状のデフォルトテキストを取得
- 27. ドロップダウンオプションのデフォルトテキストを設定する
- 28. UIAlertVIewのデフォルトテキストが表示されます
- 29. algoliaファセットはjavascript APIクライアントで空のオブジェクトを返します
- 30. スクロール要素は、角ngRepeatに
あなたはおそらくisEmpty関数を次のように書くことができます:return angular.equals({}、obj);それを1ライナーに変えます。 –
そうですよ!回答が更新されました。 – eterps
これはなぜ動作しないのですか?つまり、angular.equals()の呼び出しをインラインしようとしていますか?