Я хочу реализовать что-то подобное с angular-permisssion. И с требованием контролировать существование элемента, мне нужно использовать угловой structural directive.Как использовать Угловую конструктивную директиву с несколькими входами
В начале, я думаю, что такой синтаксис будет работать:
<h2 *permissionIf [permissionIfExcept]="'Read'">Except</h2>
Однако, это не работает.
Кроме того, официальное руководство только научит вас писать индивидуальную структурную директиву с одним входом. С несколькими входами некоторые сторонние учебники связаны с бит. Но для достижения привязки данных используется микро-синтаксис углового шаблона. Тогда одна проблема возникает: синтаксиса шаблона не поддерживает чистый ключ-значение входа:
<h2 *permissionIf="except: map.except;only: 'test'">Except</h2>
он расширяется в это (что является незаконным):
<h2 template="permissionIf except: map.except;only: 'test'">Except</h2>
Глупое временное решение добавить бесполезно объявление переменной.
<h2 *permissionIf="let i;except: map.except;only: 'test'">Except</h2>
Другим неудобным способом является использование элемента шаблона для обертывания кода.
<template permissionIf [permissionIfExcept]="'Read'">
<h2>Except</h2>
</template>
Все вышеперечисленное не обладает достаточной степенью защиты. Но я не могу найти способ его решения.
Надеюсь, что некоторые ребята могут дать какое-то предложение :).
вы отвечаете аналогично t o мое первое решение, которое означает, что «разрешения» бесполезны. –
Извините, я не понимаю, что вы имеете в виду с бесполезным. Я просто попытался продемонстрировать, как передавать значения на несколько входов. Я не вижу более одного решения. Есть только один путь. –
«бесполезно» означает, что идентификатор предназначен для исключения синтаксической ошибки, фактического использования которого нет. –