Тройное условие в 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();
    }
}
Другие вопросы по тегам