2016-05-27 8 views
1

私はangularjsコントローラにいくつかのオブジェクトを持っています。スパン内のオブジェクトが空であるかどうかをチェックする方法は?

var app = angular.module("myApp", []); 

app.controller("noteCtrl", function ($scope) { 
    $scope.draft = {}; 
    $scope.notes = []; 
    $scope.note = {}; 

$scope.submit = function() { 
    $scope.notes.push($scope.note); 
    $scope.note = {}; 
}; 

    $scope.save = function() { 
     if ($scope.button == "Save") { 
      $scope.draft = angular.copy($scope.note); 
     } else { 
      $scope.note = $scope.draft; 
     } 
    }; 

    $scope.cancel = function() { 
     $scope.note = {}; 
    } 
}); 

ドラフトオブジェクトが空であるかどうかを確認し、正常に保存された情報を出力する必要があります。

<span data-ng-hide="draft == {}" style="color:green">Your note has been saved.</span> 

私も試してみました:

<span data-ng-hide="draft.length == -1" style="color:green">Your note has been saved.</span> 

または

<span data-ng-hide="draft == ''" style="color:green">Your note has been saved.</span> 

をしかし、それらのすべてが失敗しています。

+0

が配列されていますか? –

+0

'$ scope.note'とは何ですか? – dfsq

+0

$ scope.noteはフォームからデータを格納することです –

答えて

2

は、あなたのコントローラに機能isEmptyObjectを追加します。

var app = angular.module("myApp", []); 

app.controller("noteCtrl", function ($scope) { 

    $scope.draft = {}; 
    $scope.note = {}; 
    $scope.notes = []; 

    $scope.save = function() { 
    if ($scope.button == "Save") { 
     $scope.draft = angular.copy($scope.note); 
    } else { 
     $scope.note = $scope.draft; 
    } 
    }; 

    $scope.cancel = function() { 
    $scope.note = {}; 
    } 

    $scope.isEmptyObject = function (obj) { 
    for (var i in obj) if (obj.hasOwnProperty(i)) return false; 
    return true; 
    }; 

}); 

それとも、この機能を使用することができます。

$scope.isEmptyObject = function (obj) { 
    return Object.keys(obj).length === 0; 
    } 

HTML:

<span data-ng-hide="isEmptyObject(draft)" style="color:green">Your note has been saved.</span> 
1

をヌルの代わりに、空のオブジェクト

を初期化してください。
$scope.draft = null; 

とHTMLあなたのスパンで条件をインラインでチェクすることができます

<span data-ng-hide="!draft" style="color:green">Your note has been saved.</span> 
0

でなければなりません。

HTML:

<span data-ng-hide="Object.keys(draft).length === 0" style="color:green">Your note has been saved.</span> 
関連する問題