2015-08-11 2 views
2

Я использую aurelia с TypeScript (v 1.5.4). Я использую типизированные определения от https://github.com/aurelia/<>/blob/master/dist/amd/aurelia-<>.d.ts. Также я использую VS 2015 для разработки с последующей конфигурацией Build Type Build: TypeScriptBUildOptions.@bindable в машинописных текстах не работает

Однако, когда я использую @bindable в своих виртуальных машинах и представлениях, похоже, что он не работает. Ниже приведен пример того, как я пытаюсь использовать в нав-бар:

nav-bar.ts:

import aur = require("aurelia-framework"); 
import bindable = aur.bindable; 

export class NavBar { 
     @bindable router = null; 
     .... 
} 

И это, как я использую его в app.html:

<template> 
<import from='./nav-bar'></import> 

<nav-bar router.bind="router"></nav-bar> 


<div class="page-host row"> 
    <router-view></router-view> 
</div> 
</template> 

Но по какой-то причине он не работает. Пожалуйста, дайте мне знать, если мне нужно сделать что-то по-другому.

Thank you.

+0

В случае, если 'импорта bindable = aur.bindable; 'строка say' var bindable = aur.bindable; '? –

ответ

0

Я недавно перешел на машинопись, но мне не нужно, чтобы изменить свой @bindable, я сделал добавить тип, чтобы компилятор счастливым ...

import { bindable} from 'aurelia-framework'; 

export class SomeClass{ 
    @bindable property: boolean = false; 
    ... 
} 

Хотя с моей NavBar я есть поскольку я оба связывал маршрутизатор и вводил его, в этом случае я использовал псевдоним для введенного маршрутизатора.

+0

Спасибо за ваш ответ. Я попытался использовать 'import {} из синтаксиса' '' вместо 'require()' и добавить тип 'Router' типа:' @bindable router: Router = null; '. Однако, к сожалению, привязка все еще не работает. –

0

Убедитесь, что вы задали параметры компилятора TypeScript для включения experimentalDecorators. Это можно сделать в файле. * Proj, если вы используете Visual Studio или tsconfig.json, если вы используете Gulp/command line. .

tsconfig.json

{ 
    "version": "1.5.0", 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "declaration": false, 
    "noImplicitAny": false, 
    "removeComments": true, 
    "noLib": false, 
    "emitDecoratorMetadata": true, 
    "sourceMap": true, 
    "listFiles": true, 
    "outDir": "dist", 
    "experimentalDecorators": true 
    } 
} 

* проектируемый

<PropertyGroup> 
    <TypeScriptTarget>ES5</TypeScriptTarget> 
    <TypeScriptRemoveComments>false</TypeScriptRemoveComments> 
    <TypeScriptSourceMap>true</TypeScriptSourceMap> 
    <TypeScriptModuleKind>AMD</TypeScriptModuleKind> 
    <DefineConstants>TRACE;DEBUG</DefineConstants> 
    <TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled> 
    <TypeScriptNoImplicitAny>False</TypeScriptNoImplicitAny> 
    <TypeScriptExperimentalDecorators>true</TypeScriptExperimentalDecorators 
</PropertyGroup> 

Для получения дополнительной информации см этот вопрос:

Visual Studio 2015 RC Typescript experimental decorators error