2013-08-31 8 views
1

첫 번째 폴리머 애플리케이션/예제를 작성하고 간단한 button on-click이 작동하지 않습니다. 메서드가 호출되지 않습니다. 새 폴리머 요소 (주석 처리 된 코드)를 만들지 않고 간단한 버튼을 사용하고 싶습니다. 폴리머 요소의 버튼을 사용하면 잘 작동합니다.폴리머 다트 버튼 클릭이 작동하지 않습니다. 폴리머 요소가 필요합니다

<!DOCTYPE html> 

<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Button</title> 
    <link rel="stylesheet" href="button.css"> 
    <script src="packages/polymer/boot.js"></script> 
    </head> 
    <body> 
    <h1>Button</h1> 

    <template id="tmpl" bind> 
    <button on-click="myMethod">Click me!</button><!! DOES NOT WORK!!! --> 
    </template> 
    <!-- 
    <polymer-element name="my-element" extends="div"> 
     <template> 
     <p> 
      <button on-click="myMethod">Show Message</button> 
      <button on-click="myMethod">Hide Message</button> 
     </p> 
     </template> 
    </polymer-element> 

    <my-element id="test"></my-element>--> 

    <script type="application/dart" src="button.dart"></script>  
    </body> 
</html> 

.

import 'dart:html'; 
import 'package:polymer/polymer.dart'; 

void main() { 
    query("#tmpl").model = new MyClass(); 
} 

@CustomTag('my-element') 
class MyClass extends PolymerElement with ObservableMixin{ 

    @observable String name="testname"; 

    void myMethod(var e, var detail, var target) { 
    print("button works"); 
    } 
} 

편집 : 난 그냥 폴리머 요소에서 내 버튼에 의해 호출 myMethod 템플릿 tmpl에 (예를 들어, 라디오 버튼이나 체크 박스) 정의 된 다른 요소의 데이터에 액세스 할 수 없습니다 것을 깨달았다.

답변

0

예, on-* 속성은 고분자 요소 내에서만 작용합니다.

+0

다른 폴리머 요소간에 데이터 또는 응용 프로그램 상태를 공유하려면 어떻게해야합니까? polymer-element1이 x에서 z로 초기화 값을 변경하면 polymer-element2는 x 만 다시 읽습니다. – Gero

+0

메시지 전달은이를 수행하는 좋은 방법입니다. 이벤트 발사 및/또는 속성 변경에 대한 응답. http://www.polymer-project.org/articles/communication.html – ebidel

0

사용자 지정 요소 다트 단추를 만들고 사용자 지정 특성을 사용하여 onclick 메서드를 설정할 수 있습니다. As I used it in this demo for onblur

이 모델에서 컨트롤 상태를 협조해야하는 컨트롤간에 모델을 공유 할 수 있습니다. 그러면 다른 컨트롤 상태에 액세스 할 수 있습니다.

관련 문제