2014-12-18 2 views
0

В моих AngularJS Views, мне нравится использовать такие выражения, какУгловое выражение: возможность делать безопасный тип "или" ||

{{myScopeVariable || defaultText}} 

Однако, если myScopeVariable является "0", defaultText показано. Есть ли способ оценить первую часть выражения typesafe?

Я хотел бы ожидать следующее поведение:

if myScopeVariable is 'undefined' 
--> defaultText is shown 

if myScopeVariable is 2 
---> myScopeVariable is shown 

if myScopeVariable is 0 
---> myScopeVariable is shown (currently not the case) 

Спасибо за вашу помощь!

+0

использование TYPEOF для проверки типа данных. – Ved

+0

К сожалению, это не помогает, поскольку выражения AngularJS являются ["прощающими"] (https://docs.angularjs.org/guide/expression) -> если myScopeVariable является свойством Object, и объект еще не определен, я бы должны выполнять проверки типов по всему пути свойства. – ulilicht

+0

Если возможно, создайте ссылку на скрипку .. – Ved

ответ

1

Как прокомментировал Phix, я пошел бы за фильтром.

На самом деле есть хороший Lib для некоторых общих фильтров, которые также включает в себя по умолчанию фильтра: https://github.com/frapontillo/angular-filters

(Вот код для фильтра по умолчанию: https://github.com/frapontillo/angular-filters/blob/develop/src/filters/default/default.js)

+0

Спасибо за ваш ответ, библиотека делает именно то, что я ищу! – ulilicht

Смежные вопросы