2015-08-03 1 views
0

Я увидел следующую строку в угловом js-фильтре. Что оно делает?Вход ORring с ''

input = input || '';

https://docs.angularjs.org/guide/filter

+0

это удалить пробелы во входных данных? – dlearner

+0

это логическое «ИЛИ», поэтому я предполагаю, что это означает, что 'input' является либо введенным данным, либо если этот ввод задан как NULL, он вводит хотя бы' string.Empty' вместо 'NULL' , – St0fF

ответ

2

Это обычно используемая конструкция в javascript для значения по умолчанию для неопределенного аргумента в функции.

Это эквивалентно:

if (!input) { 
    input = ' '; 
} 

Или

input = input ? input : ' '; 

Или более многословен:

if (input === null || input === undefined || input === 0 || input === "" || input === false) { 
    input = ' '; 
} 

Так что в этом случае он назначает место в случае input пустая строка или не определено/указано.

0

В Angularjs, это syntaxe проверяет, установлен ли вход нуль. Если input равно null, значение будет `` иначе оно будет input.

Этот синтаксис может избежать null или undefined значение.

Пример из углового документа (возможно, например, в котором вы видите этот синтаксис):

angular.module('myReverseFilterApp', []) 
.filter('reverse', function() { 
    return function(input, uppercase) { 
    input = input || ''; 
    var out = ""; 
    for (var i = 0; i < input.length; i++) { 
     out = input.charAt(i) + out; 
    } 
    // conditional based on optional argument 
    if (uppercase) { 
     out = out.toUpperCase(); 
    } 
    return out; 
    }; 
}) 
.controller('MyController', ['$scope', function($scope) { 
    $scope.greeting = 'hello'; 
}]); 

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

+0

спасибо за ответ. Сначала я увидел более ранний пост, поэтому я отметил его :) – dlearner