У меня есть список с некоторыми людьми, и если у этого человека есть поле комментариев - вы можете редактировать эту информацию в input:text
. Поэтому я показываю это поле, когда у человека есть это поле. Но у меня проблема, когда я удаляю предыдущий комментарий - ввод скрывается. Это couse person.comment = ""
, и я думаю, что это мены, как ложные.
<input person="text" ng-show='person.comment' ng-model='person.comment'>
я пытаюсь сделать следующее:
ng-show='person.comment || person.comment === ""'
но, возможно, существует другой способ? как comment in person
? Мой plnkr.
Чтобы проверить, есть ли у объекта ключ в javascript, для вас вы можете написать:
ng-show="person.hasOwnProperty('comment')"
Добавить Simply angular.forEach в массив $ scope.stuff Как: -
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 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'>
Пройдите через этот плункер
comment
тоже будут иметь вход
ng-show='person.comment || person.comment === ""'
поле ввода не исчезает при удалении текста в поле ввода.ng-show='person.comment || person.comment === ""' || person.comment === undefined
и это выглядит ужасно, поэтому, возможно, у нас есть лучший способ проверить. как мы делаем,if
if(comment in person)
например,