Тройное условие в ng-click угловой js
В HTML
у меня есть button
и я использую ng-click
событие на нем, вот так:
ng-click="!user.name : openModel('lg') ? ''"
Я говорю, если user.name
не определено, то вызвать функцию под названием openModel()
иначе ничего не делать.
Но это порождает ошибку
Error: $parse:syntax
Syntax Error
Syntax Error: Token ':' is an unexpected token at column 33 of the expression [!user.name :] starting at [{4}].
Так что здесь не так?
Благодарю.
2 ответа
Решение
Правильный синтаксис будет ng-click="!user.name ? openModel('lg') : angular.noop()"
, angular.noop()
это функция, которая не выполняет никаких операций.
Не помещайте выражение условия в шаблон. Сделайте это в коде контроллера,
ng-click="openModel('lg')"
контроллер:
$scope.openModel = function(value) {
if ($scope.name) {
Open();
}
}