Aurelia-диалог BindingLanguage должен реализовывать inspectTextContent () - PullRequest
0 голосов
/ 31 августа 2018

Я установил aurelia-диалог npm install aurelia-dialog --save. Который установил версию "version": "2.0.0-rc.3". Я изменил main.ts, добавив .plugin(PLATFORM.moduleName('aurelia-dialog')) ; к aurelia.use в функции настройки. я добавил "dependencies": [ { "name": "aurelia-dialog", "path": "../node_modules/aurelia-dialog/dist/amd", "main": "aurelia-dialog", "resources": ["resources/*.js"] } ] в aurelia.json (поэтому я не уверен, что это полезно).

Тогда вот модуль, используемый для вызова диалога:

import {DialogService} from 'aurelia-dialog';
import {Rapport} from '../modal/rapport';

@inject(CssAnimator,
EventAggregator,
Parameters,
Configurator,
NewInstance.of(ValidationController),
Validator,
Router,
NewInstance.of(HttpClient),
DialogService
)
export class Import {
constructor(private cssAnim: CssAnimator,
    private ea: EventAggregator,
    private params: Parameters,
    private conf: Configurator,
    private controller: ValidationController,
    private validator: Validator,
    private router: Router,
    private httpClient: HttpClient,
    private dialogService: DialogService) {
...
}
...
test(){
    let testResponse='{"FATAL":["1 ca craint !", "2","3","4"],"WARN":["w1", "w2","w3"],"INFO":["i1","i2","i3"]}';
    this.dialogService.open({
                viewModel: Rapport,
                model:testResponse
            }).whenClosed(reponse => {
                console.log("Rapport lu :) + ["+reponse.output+"]");
            });
}

My Rapport VM:

import {inject} from 'aurelia-framework';
import {DialogController} from 'aurelia-dialog';

@inject(DialogController)
export class Rapport {
    fatals: string[]=[];
    warns: string[]=[];
    infos: string[]=[];

    constructor(private controller: DialogController) {
        controller.settings.centerHorizontalOnly = true;
    }

    activate(rapportJson) {
        let rapport = JSON.parse(rapportJson);
        this.fatals = rapport.FATAL;
        console.log("fatals :"+this.fatals);
        this.warns = rapport.WARN;
        console.log("warns :"+this.warns);
        this.infos = rapport.INFO;
        console.log("infos :"+this.infos);
    }
}

Мой взгляд:

<template> 
<!--    <ux-dialog>  -->
<!--        <ux-dialog-body> -->
<!--            <h2>Erreurs fatales : </h2> -->
<!--            <ul> -->
<!--            <li repeat.for="f of fatals"><span>${f}</span></li> -->
<!--            </ul> -->
<!--            <h2>Avertissements : </h2> -->
<!--            <ul> -->
<!--            <li repeat.for="w of warns"><span>${w}</span></li> -->
<!--            </ul> -->
<!--            <h2>Pour information : </h2> -->
<!--            <ul> -->
<!--            <li repeat.for="i of infos"><span>${i}</span></li> -->
<!--            </ul> -->
<!--        </ux-dialog-body>  -->
<!--        <ux-dialog-footer> -->
<!--            <button class="btn btn-success"   click.delegate="controller.ok()" >Ok</button> -->
<!--        </ux-dialog-footer>  -->
<!--    </ux-dialog>  -->
</template>

Все в комментариях, но без этого он не будет работать одинаково: (

Когда я нажимаю на кнопку test (см. Класс Import), то ничего не добавляется, и у меня появляются следующие следы:

летальных исходов: 1 ca craint!, 2,3,4 раппорт: 27: 9

предупреждает: w1, w2, w3 раппорт: 29: 9

информация: i1, i2, i3 rapport: 31: 9

DEBUG [шаблонный] импорт ресурсов для modal / rapport.html Array [] aurelia-logging-console: 20: 6

Ошибка необработанного отклонения: BindingLanguage должен реализовывать inspectTextContent ().

mi@webpack-internal:///./node_modules/aurelia-dialog/node_modules/aurelia-templating/dist/native-modules/aurelia-templating.js:892:9

inspectTextContent@webpack-internal:///./node_modules/aurelia-dialog/node_modules/aurelia-templating/dist/native-modules/aurelia-templating.js:909:5

_compileNode@webpack-internal:///./node_modules/aurelia-dialog/node_modules/aurelia-templating/dist/native-modules/aurelia-templating.js:2824:26

_compileNode@webpack-internal:///./node_modules/aurelia-dialog/node_modules/aurelia-templating/dist/native-modules/aurelia-templating.js:2844:26

compile@webpack-internal:///./node_modules/aurelia-dialog/node_modules/aurelia-templating/dist/native-modules/aurelia-templating.js:2791:5

loadViewFactory/</registryEntry.onReady<@webpack-internal:///./node_modules/aurelia-dialog/node_modules/aurelia-templating/dist/native-modules/aurelia-templating.js:3518:27

От предыдущего события:

loadViewFactory/<@webpack-internal:///./node_modules/aurelia-dialog/node_modules/aurelia-templating/dist/native-modules/aurelia-templating.js:3511:31

От предыдущего события:

loadViewFactory@webpack-internal:///./node_modules/aurelia-dialog/node_modules/aurelia-templating/dist/native-modules/aurelia-templating.js:3493:12

loadViewFactory@webpack-internal:///./node_modules/aurelia-dialog/node_modules/aurelia-templating/dist/native-modules/aurelia-templating.js:617:12

load@webpack-internal:///./node_modules/aurelia-dialog/node_modules/aurelia-templating/dist/native-modules/aurelia-templating.js:4274:14

createController/<@webpack-internal:///./node_modules/aurelia-dialog/node_modules/aurelia-templating/dist/native-modules/aurelia-templating.js:4883:14

От предыдущего события:

createController@webpack-internal:///./node_modules/aurelia-dialog/node_modules/aurelia-templating/dist/native-modules/aurelia-templating.js:4871:12

_createControllerAndSwap@webpack-internal:///./node_modules/aurelia-dialog/node_modules/aurelia-templating/dist/native-modules/aurelia-templating.js:4843:12

compose@webpack-internal:///./node_modules/aurelia-dialog/node_modules/aurelia-templating/dist/native-modules/aurelia-templating.js:4945:14

DialogService.prototype.composeAndShowDialog@webpack-internal:///./node_modules/aurelia-dialog/dist/native-modules/dialog-service.js:79:16

DialogService.prototype.open/openResult<@webpack-internal:///./node_modules/aurelia-dialog/dist/native-modules/dialog-service.js:141:20

От предыдущего события:

DialogService.prototype.open@webpack-internal:///./node_modules/aurelia-

Диалог / расстояние / нативный-модули / Диалог-service.js: 131: 26

Import.prototype.test@webpack-internal:///import/import:279:9

evaluate@webpack-internal:///./node_modules/aurelia-binding/dist/native-modules/aurelia-binding.js:1578:14

callSource@webpack-internal:///./node_modules/aurelia-binding/dist/native-modules/aurelia-binding.js:5269:18

handleEvent@webpack-internal:///./node_modules/aurelia-binding/dist/native-modules/aurelia-binding.js:5278:5

handleDelegatedEvent@webpack-internal:///./node_modules/aurelia-binding/dist/native-modules/aurelia-binding.js:3353:11

Что не так? Я не могу найти ответ ни в блоге Aurelia, ни где-либо еще ...

1 Ответ

0 голосов
/ 31 августа 2018

Знаешь что?

Я сделал npm install -g aurelia-cli; это обновляет Аурелию.

В другом каталоге я сделал au new, а затем установил все нужные мне пакеты (включая aurelia-dialog). Скопируйте / вставьте все файлы src из предыдущего места и ... это работает !!

Так что если у вас проблемы с Aurelia-диалогом (и другими плагинами, я полагаю), убедитесь, что Aurelia обновлена ​​до последней версии. Надеюсь, моя потеря времени поможет кому-то другому не терять свое время ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...