2015-03-23 1 views
7

Я пытаюсь создать простую форму, как описано в http://angularjs.blogspot.no/2015/03/forms-in-angular-2.html, но когда я добавляюИмпорт anuglar2/формы, вызывающая «Не удается прочитать свойство„аннотация“неопределенный»

import {forms, required} from 'angular2/forms';

в ДТП с

TypeError: Cannot read property 'annotations' of undefined 

TypeError: Cannot read property 'annotations' of undefined 
    at ReflectionCapabilities.System.register.execute.$__export.annotations (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/reflection/reflection_capabilities.es6!eval:81:40) 
    at Reflector.System.register.execute.$__export.annotations (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/reflection/reflector.es6!eval:81:50) 
    at DirectiveMetadataReader.System.register.execute.$__export.read (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/core/compiler/directive_metadata_reader.es6!eval:31:41) 
    at eval (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/core/compiler/compiler.es6!eval:127:35) 
    at Array.map (native) 
    at Function.System.register.execute.$__export.map (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/facade/collection.es6!eval:172:26) 
    at Compiler.System.register.execute.$__export.createSteps (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/core/compiler/compiler.es6!eval:126:43) 
    at Compiler.System.register.execute.$__export._compileTemplate (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/core/compiler/compiler.es6!eval:164:53) 
    at eval (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/core/compiler/compiler.es6!eval:154:29) 
    at Zone.run (http://localhost:9090/node_modules/zone.js/zone.js:87:19) 

-----async gap----- 
Error 
    at Function.System.register.execute.$__export.then (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/facade/async.es6!eval:35:28) 
    at Compiler.System.register.execute.$__export._compile (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/core/compiler/compiler.es6!eval:153:42) 
    at Compiler.System.register.execute.$__export.compile (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/core/compiler/compiler.es6!eval:134:34) 
    at eval (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/core/application.es6!eval:73:23) 
    at Function.System.register.execute.$__export.apply (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/facade/lang.es6!eval:317:23) 

-----async gap----- 
Error 
    at _AsyncInjectorStrategy.System.register.execute._AsyncInjectorStrategy.instantiate (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/di/injector.es6!eval:297:17) 
    at Injector.System.register.execute.$__export._getByKey (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/di/injector.es6!eval:138:33) 
    at Injector.System.register.execute.$__export.asyncGet (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/di/injector.es6!eval:112:25) 
    at eval (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/core/application.es6!eval:113:39) 

-----async gap----- 
Error 
    at VmTurnZone.System.register.execute.$__export._createInnerZone (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/core/zone/vm_turn_zone.es6!eval:61:45) 
    at new VmTurnZone (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/core/zone/vm_turn_zone.es6!eval:29:34) 
    at _createVmZone (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/core/application.es6!eval:101:16) 
    at bootstrap (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/core/application.es6!eval:110:16) 
    at y.main (http://localhost:9090/app.js!eval:10:12) 
    at http://localhost:9090/?:42:21 

-----async gap----- 
Error 
    at VmTurnZone.System.register.execute.$__export._createInnerZone (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/core/zone/vm_turn_zone.es6!eval:61:25) 
    at new VmTurnZone (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/core/zone/vm_turn_zone.es6!eval:29:34) 
    at _createVmZone (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/core/application.es6!eval:101:16) 
    at bootstrap (http://localhost:9090/node_modules/angular/dist/js/prod/es6/angular2/src/core/application.es6!eval:110:16) 
    at y.main (http://localhost:9090/app.js!eval:10:12) 
    at http://localhost:9090/?:42:21 

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

UPDATE: 'undefined' фактически является директивой 'forms', которая, по-видимому, действительно отсутствует в угловых2/modules/angular2/src/forms. Затем DirectiveMetadataReader передает «неопределенный» дальше рефлектору, который в итоге приводит к исключению. Было бы неплохо иметь чек в шаблоне.

+0

Я точно не понимаю этот вопрос; статья, которую вы связали, не является производственным кодом, в статье четко сказано: «(Это предлагаемый API, мы бы с удовольствием взяли на себя ваш вклад.)« Это говорит мне, что это не рабочий код, а предложение для синтаксиса нравится использовать. – Claies

+0

, чтобы быть справедливым, кроме этого единственного утверждения, остальная часть статьи представляет его как функциональный рабочий код, а не только предлагаемую концепцию – adeelmahmood

+0

, вы нашли решение этой проблемы? – jumpa

ответ

2

Похоже, что пример из блога Виктора не соответствовал используемой вами версии (в эти API API так быстро менялись). Но теперь бета версии (и это означает не более отличиях), поэтому я создал работающий пример с как можно ближе функциональность:

Угловое 2 Beta

import {Component} from 'angular2/core' 
import {ControlGroup, FormBuilder, Validators} from 'angular2/common' 
... 

http://plnkr.co/edit/ae1WEgQJWPMdEgoweMGd?p=preview просто проверить, как далеко он пошел (достаточно далеко!).

С угловых версий: 2.0.0-RC.1

Всего импорт, которые были с использованием angular2 необходимости быть изменен на @angular

import {Component} from '@angular/core' 
import {ControlGroup, FormBuilder, Validators} from '@angular/common'; 

Для получения дополнительного Списка импорта смотрите здесь: -

+0

до сих пор есть только Angular2 RC.1 нет RC.2 @OUtlooker –

+0

Edited.my плохой..tanx @PardeepJain – Outlooker

+0

ваш прием @Outlooker –