2016-01-31 3 views
0

В компоненте формы у меня есть наблюдатель, который проверяет, действительно ли свойство действительно, чтобы начать дальнейшие проверки.
Так что я проверил, если имущество еще не определена (происходит при инициализации F.E.)this.get ('x') возвращает 'undefined' вместо 'undefined'

if(typeof this.get('myProperty') !== 'undefined') { 
    //do smth 
} 

Тогда я понял, что this.get не возвращает тип «не определен», но строку со значением неопределенной.
Ярмарка достаточно.

НО

console.log(this.get('myProperty')); 

дает мне 'неопределенными' вместо 'не определено' - обратите внимание на пробел перед 'неопределенным'!

Это ошибка?
Или мне действительно нужно проверить «неопределенный» с пробелом и есть ли причина для этого?

Ember-кли: 1.13.7
Ember: 2.0.1

+1

'this.get' должен возвращать' undefined' not ''undefined''. Уверены, что вы не устанавливаете его «неопределенным» в каком-то другом месте? Попробуйте проверить 'undefined === this.get ('missingProperty');', он должен возвращать 'true', если свойство никогда не было определено. – nem035

+0

Я даже устанавливаю его в '' '' в компоненте. Это находится в наблюдателе, во время инициализации компонента он сначала возвращает '' undefined'', затем '' '', затем' '''. – Jeff

+0

Наблюдатель не должен ничего возвращать, думаете ли вы о вычисленном свойстве? – nem035

ответ

0

Как насчет использования Ember.isNone или Ember.isEmpty. Для противоположного Ember.isPresent

Возвращает true, если аргумент имеет значение null или undefined.

Ember.isNone(); // true 
Ember.isNone(null); // true 
Ember.isNone(undefined); // true 
Ember.isNone(''); // false 
Ember.isNone([]); // false 
Ember.isNone(function(){}); // false 

Эта функция полезности ограничивает правила на Ember.none, возвращая ложь для пустой строки и пустые массивы.

Ember.isEmpty(); // true 
Ember.isEmpty(null); // true 
Ember.isEmpty(undefined); // true 
Ember.isEmpty(''); // true 
Ember.isEmpty([]); // true 
Ember.isEmpty('tobias fünke'); // false 
Ember.isEmpty([0,1,2]); // false 
Смежные вопросы