как добавить логический оператор отрицания (!) в динамический html

119
14

как добавить оператор отрицания в динамическое содержимое html

'<div class="col-lg-4 col-md-4 col-sm-4 col-xs-12 form-group1" ng-class="{\'has-error\': (form.Year.$error.required && form.Year.$touched), \'has-success\':  !(form.Year.$error.required)}"><select ng-model="year" class="form-control" ' + strAttrs[2] + ' ng-options="year.value as year.name disable when year.disabled for year in years" class="form-control" ng-required="true" name="Year"></select></div>'

В этом вышеприведенном коде я дал оператор отрицания, как это,

! (Form.Year. $ Error.required)

но каждый раз, когда он принимает значение null, я полагаю, что я не добавил логический оператор в динамическое содержимое html.

Любая помощь заметна, спасибо заранее. :)

спросил(а) 2021-01-19T14:17:42+03:00 6 месяцев, 1 неделя назад
1
Решение
110

Для меня работает следующее:

<div ng-class="{'ok': (success && !error), 'not-ok': (!success || error)}">Result Box</div>

Обратите внимание, что мне не нужно было скрывать одиночные кавычки. Когда я попытался избежать одиночных кавычек, это не сработало.

Я также заметил, что некоторые некорректные цитаты в вашем выборе:

class="form-control" ' + strAttrs[2] + ' ng-options="year.value as year.name disable when year.disabled for year in years"

Вы также определяете класс дважды, но это должно просто терпеть неудачу.

Вот крошечный рабочий пример:

<!doctype html>
<html ng-app="myApp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.js"></script>
<script>
angular.module('myApp', [])
.controller('MyController', ['$scope', function ($scope) {
$scope.success = true;
$scope.error = false;
}]);
</script>
<style>
.not-ok { border: 1px solid red; }
.ok { background-color: green; }
</style>
</head>
<body ng-controller="MyController">
<input type="checkbox" ng-model="success">Success {{success}}
<br/>
<input type="checkbox" ng-model="error">Error {{error}}
<div ng-class="{'ok': (success && !error), 'not-ok': (!success || error)}">Result Box</div>
</body>
</html>

ответил(а) 2021-01-19T14:17:42+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема