2015-11-28 2 views
0

Это похоже на основной поток, но я не могу найти примеры.Aurelia Как сделать асинхронную работу в прикрепленном методе пользовательского компонента

У меня есть этот настраиваемый компонент, который загружает список элементов из бэкэнд-сервиса. Я попытался написать этот асинхронный код ниже, но я получаю ошибку «Неожиданный токен» в браузере на let.

import {customElement, bindable, inject} from 'aurelia-framework'; 
import {ItemsService} from 'Services/ItemsService'; 

@customElement('itemslist') 
export class ItemsList { 

    static inject() { return [Element, ItemsService]; } 

    constructor(element, itemsService) { 
     this.element = element; 
     this.itemsService = itemsService; 
    } 

    async attached() { 
     let this.items = await this.itemsService.getItemList(); 
    } 
} 

Как я должен делать асинхронной работы, чтобы загрузить элементы и установить его на мой просмотр модели пунктов собственности?

Благодаря

ответ

4

let ключевое слово используется для объявления локальных переменных, вы не можете использовать его перед this. Просто удалите let. Объявите свое свойство items в конструкторе или синтаксисе ES7.

async/await трансформатор Бабеля должен быть enabled- Изменить this:

config.js

"babelOptions": { 
    "optional": [ 
     "es7.decorators", 
     "es7.classProperties" 
    ] 
    }, 

Для этого:

"babelOptions": { 
    "optional": [ 
     "es7.decorators", 
     "es7.classProperties", 
     "es7.asyncFunctions" 
    ] 
    }, 

Или это:

"babelOptions": { 
    "stage": 0 
    "optional": ["runtime"] 
    }, 
+0

Это правильный ответ –

Смежные вопросы