2016-09-05 1 views
0

Ich habe Liste mit einigen Personen, und wenn diese Person Kommentarfeld haben - Sie können diese Informationen in input:text bearbeiten. Also zeige ich dieses Feld, wenn die Person dieses Feld hat. Aber ich habe ein Problem, wenn ich vorherigen Kommentar entfernen - Eingabe ist ausblenden. Es ist , und ich denke, es ist falsch.Überprüfen Sie Param in Objekt in ng-Modell

<input person="text" ng-show='person.comment' ng-model='person.comment'> 

ich versuche, dies zu tun:

ng-show='person.comment || person.comment === ""' 

aber vielleicht eine andere Art und Weise gibt es? wie comment in person? My plnkr.

+0

wie Ihr Versuch sieht das Problem nicht lösen, wenn ich das richtig verstehen. Wenn ich hinzufügen würde, ng-show = 'person.comment || person.comment === "" ''Das Eingabefeld verschwindet beim Löschen des Textes im Eingabefeld nicht. – Matthias

+0

@Matthias ja ist es, aber manchmal (nicht oft) person.comment - undefined, so muss ich 'ng-show = 'person.comment || machen person.comment === "" '|| person.comment === undefined' und das sieht hässlich aus, also haben wir vielleicht einen besseren Weg es zu überprüfen. wie in 'if'' if (Kommentar in Person) 'zum Beispiel – YoroDiallo

+0

in welcher Situation möchten Sie das Eingabefeld wirklich verstecken? könnte das verwenden, und zeigen Sie es in allen anderen Fällen – Matthias

Antwort

0

Fügen Sie einfach angular.forEach Schleife auf $ scope.stuff Array wie: -

Js

var app = angular.module('App', []); 

app.controller('Ctrl', function($scope) { 
    $scope.hideVariable = true; 
    $scope.stuff = [ 
     { 
     name: 'Jack', 
     age : 22, 
     comment : 'good boy' 
     }, 
     { 
     name: 'Bob', 
     age : 23, 
     comment : 'likes beer' 
     }, 
     { 
     name: 'Alisa', 
     age : 21, 
     comment : 'pretty girl' 
     }, 
     { 
     name: 'Jane', 
     age : 25, 
     comment : "she's fine" 
     }, 
     { 
     name: 'Mike', 
     age : 19, 
     comment : 'playing guitar' 
     } 
    ] 
    angular.forEach('$scope.stuff', function (data) { 
     if(data.comment === null || data.comment === 'undefined') { 
     $scope.hideVariable = false; 
     } 
    }) 
}) 

HTML

<input person="text"ng-show="hideVariable" ng-model='person.comment'> 

gehen durch diese plunker

+0

nein, ohne ng-show personen ohne 'kommentar' wird auch eingegeben – YoroDiallo

+0

Ok dann einfach für for loop in deine Js einfügen und eine boolsche variable übergeben um dein field enable disable zu machen, Warte, ich werde die Antwort aktualisieren –

+0

Ich denke, es wird Arbeit zu thx! – YoroDiallo

Verwandte Themen