2016-12-29 3 views
1

$ 이벤트를 사용할 수 없습니다. 예 :

import 'package:angular2/core.dart'; 

@Component(
    selector: 'my-app', 
    template: ''' 
     <h1>{{title}}</h1> 
     <button (click)="onTest($event)">testing</button> 
    ''') 
class AppComponent { 
    String title = 'Testing event'; 

    onTest(event) { 
     print(event); 
    } 
} 

내가 술집이 응용 프로그램을 제공하자, 내가 빌드 오류가 발생합니다 :

Build error: 
Transform DirectiveProcessor on file_transfer|lib/app_component.dart threw error: Angular 2 could not understand the value in View#template. 
''' 
     <h1>{{title}}</h1> 
     <button (click)="onTest($event)">testing</button... 
package:angular2/src/transform/common/type_metadata_reader.dart 164:5 _expressionToString 
package:angular2/src/transform/common/type_metadata_reader.dart 920:17 _CompileTemplateMetadataVisitor._populateTemplate 
package:angular2/src/transform/common/type_metadata_reader.dart 901:9 _CompileTemplateMetadataVisitor.visitNamedExpression 
package:analyzer/src/dart/ast/ast.dart 7455:15       NamedExpressionImpl.accept 
... 

이 나는 ​​또한에 (클릭) 변경 시도 '로 여기 $event in AngularDart 1.0 is not available anymore - what is the alternative? NG 클릭 그러나 didn를 도와 줘.

나는 각도가 새롭지 만, 위의 코드는 일해야합니까? 나는 https://webdev.dartlang.org/angular/guide/template-syntax#!#event-binding과 $ event가 사용 된 영웅 예제를 보았다. 차이가 보이지 않습니다 ...

도움을 주시면 감사하겠습니다.

답변

3

이 스 니펫은 템플릿이 자체 파일에있는 경우 제대로 작동합니다.

그러나 템플릿은 .dart 파일에 있기 때문에 문자열의 $variable은 그 문맥에서 variable의 값으로 평가됩니다.

    템플릿에서 $ 탈출
  1. :이 경우

    , 다음 중 하나가이 일을 할 것입니다. 와

<button (click)="onTest($event)">testing</button>

교체

<button (click)="onTest(\$event)">testing</button>

  1. 를 사용하여 템플릿으로 원시 문자열 :

template: r''' ...template content... ''')