The bug source code is here.Kierownica Meteor {{#if}} zamienia łańcuchy w obiekty
Załóżmy, że piszę po tablicy w Meteorzie, używając zwykłej pętli {{#each}}
. Każdy element tablicy jest ciągiem znaków, a ja wyprowadzam łańcuch w każdym kroku, używając {{this}}
. Jak na razie dobrze! Jeśli użyję pomocnika kierownicy do sprawdzenia typeof
dla this
, otrzymam string
. Słodkie! Wszystko jest tak, jak powinno być.
Ale jeśli dodać {{#if something }}
-helper wewnątrz {{#each}}
(w something
prostu zwraca wartość true, a więc leci i wyjścia {{this}}
) łańcuch będzie nadal wyglądać dobrze w HTML, ale teraz jest to object
w czeku typeof
!
To jest bardzo denerwujące, ponieważ cały mój kod może być zależny od tego, czy teraz zwróci false.
Czy robię coś nie tak?
Czy to jest prawdziwy błąd?
Jeśli tak, to czy jest to błąd specyficzny dla Meteor lub specyficzny dla kierownicy?
Dzięki!
Oh: the source link again. Po prostu pociągnij i uruchom meteor
i zajrzyj do konsoli przeglądarki.
Pozdrawiam, świetna odpowiedź! –
Dzięki - dobra praca nad wykonaniem łatwego w użyciu przypadku testowego :) –
Innym obejściem, którego można użyć w przypadku porównywania napisów: _.isEqual (this, stringToCompareAgainst). Zauważ również, że Template.currentData() zwraca ciąg znaków, a nie obiekt – JobJob