Я думаю, что может быть проблема с типом ответа.Попробуйте сравнить с == 'true'
или === 'true'
и т. Д. У меня были такие проблемы некоторое время назад.
Проблема может заключаться в том, что когда false - это строка, она вернет true
(как всегдавозвращая истину).В вашем случае вы сравниваете с !true
, и это будет false
.
<app-chat [hidden]="userPermission(channel, channelId) != true | async" [channelId]="channelId" [channel]="channel"></app-chat>
Возможно, я ошибаюсь, но это может быть проблемой.Еще приведите пример в jsfiddle или аналогичном.
Обновление
Попробуйте выполнить асич для параметров внутри функции, если это ваши наблюдаемые
userPermission( (channel | asynch), (channelId | asynch)
Обновление2
Похоже, ваши переменные являются ли Наблюдаемым или возвращением Обещания, которое вы должны использовать
[hidden]="!userPermission(channel, channelId)"
без асинхронности.Как видно из сообщения об ошибке, он возвращает 'true'
как неправильный параметр для асинхронизации канала.