труба 'разрешения' не может быть найдена? - PullRequest
0 голосов
/ 12 марта 2019

После шаг за шагом dev Я пытаюсь Скрыть неавторизованную кнопку .

это код кнопки в phoneBook.component.html:

<button *ngIf="'Pages.Tenant.PhoneBook.CreatePerson' | permission" class="btn btn-primary" (click)="createPersonModal.show()"><i class="fa fa-plus"></i> {{l("CreateNewPerson" | localize)}}</button>

когда я запускаю проект, я получаю эту ошибку в консоли:

ERROR Error: "Uncaught (in promise): Error: Template parse errors:
   The pipe 'permission' could not be found ("
        </div>

        <div class="col-sm-6 text-right">
              .......

как я могу исправить эту проблему?

Ответы [ 3 ]

2 голосов
/ 12 марта 2019

Необходимо создать и импортировать пользовательские трубы в модуль. Трубу можно использовать так:

<button *ngIf="(Pages?.Tenant?.PhoneBook?.CreatePerson' | permission).length === 0" 
    class="btn btn></button>

Тогда ваша труба должна выглядеть следующим образом:

@Pipe({name: 'permission'})
export class PermissionPipe implements PipeTransform {
  transform(value: number, exponent: string): number {
    ...
    return ...;
  }
}

И объявление в модуле:

import { LabTestService } from './lab-test/lab-test.service';
import { PermissionPipe } from './...';

@NgModule({
    declarations: [
        AppComponent,
        PermissionPipe 
    ],
    imports: [
        NgbModule.forRoot(),
        BrowserModule,
        FormsModule        
    ],
    ...
    bootstrap: [ AppComponent ]
})
export class AppModule { }
1 голос
/ 12 марта 2019

Определение канала предоставлено в v6.7.0 базового решения ASP.NET Zero.

Если вы используете более старую версию, вы можете просмотреть соответствующую версию документации: https://docs.aspnetzero.com/documents/zero/v6.6.0/Developing-Step-By-Step-Angular#hide-unauthorized-button

Это разница (усеченная) из aspnetzero / documents @ bccbc7a :

- *ngIf="isGranted('Pages.Tenant.PhoneBook.CreatePerson')"
+ *ngIf="'Pages.Tenant.PhoneBook.CreatePerson' | permission"
0 голосов
/ 12 марта 2019

В кодах вашей ссылки они используют «разрешение» в качестве данных.

Так что я думаю, что они делают ошибку. Они не хотят, чтобы здесь был канал, а булевы данные со спины.

Так что это может быть <div *ngIf="... || permission">

(Их ссылка на github устарела, поэтому невозможно получить чистый код)

...