/ / AngularJS: Wywołanie funkcji w teście warunkowym operatora potrójnego - javascript, angularjs, ternary-operator

AngularJS: Wywołanie funkcji w teście warunkowym operatora potrójnego - javascript, angularjs, ternary-operator

Mój plik HAML:

%pipes-autocomplete{:model =>"filter.value",:option => "validate_option(filter)" ? "dependant(filter)" : "filter.option"}

My Coffee Script:

  $scope.validate_option =(filter)->
console.log "called validate_option"
if filter.hasOwnProperty("option") && filter.option.indexOf("dependant") > -1
return true
else
return false
$scope.dependant =(cal)->
return "choosed"

W potrójnym operatorze próbuję wywołać funkcję validate_option zdefiniowaną w moim sterowniku kątowym. Ale funkcja nie jest wywoływana. Może ktoś mi pomoże z tym problemem.

Odpowiedzi:

2 dla odpowiedzi № 1

Gdy umieścisz to w pytaniu, operator trójskładnikowy rozważy ciąg znaków "validate_option(filter)" być true (tylko dlatego, że nie jest pusty).

Zamiast tego włóż operatora trójskładnikowego do łańcucha:

"validate_option(filter) ? dependant(filter) : filter.option"

W ten sposób odkładasz wykonanie operatora trójskładnikowego na czas, gdy łańcuch jest faktycznie oceniany.