【问题标题】:Binding Polymer button to Dart code将 Polymer 按钮绑定到 Dart 代码
【发布时间】:2014-07-31 11:55:42
【问题描述】:

在阅读了将按钮点击(或点击)处理程序绑定到 dart 功能的不同方法后,我没有一个可以运行。基本上我有一个自定义聚合物元素(带有一个对话框),其中包含一个输入字段和一个按钮。该按钮应打开另一个对话框,其中包含一些其他元素并可以访问以前的输入。

register-dialog.html

<link rel="import" href="packages/polymer/polymer.html">
<link rel="import" href="packages/paper_elements/paper_input.html">
<link rel="import" href="packages/paper_elements/paper_button.html">
<link rel="import" href="packages/paper_elements/paper_dialog.html">
<link rel="import" href="packages/paper_elements/paper_dialog_transition.html">

<polymer-element name="register-dialog" noscript>
  <template>
   <link rel="stylesheet" href="configurator.css">
    <paper-dialog heading="Willkommen in IP-Symcon" vertical autoCloseDisabled=true transition="paper-transition-center" opened=true>
      <p>{{test}}</p>
      <p><paper-input floatingLabel label="Lizenzname" style="width: 380px; margin: 0 10px"></paper-input></p>
      <p><input type="file" id="licence_upload" name="licence_upload"  style="width: 380px;margin: 0 10px" /></p>
      <paper-button affirmative label="Jetzt Einrichten"
      id="registerButton"
      on-click="register" class="ink" style="right: 10px;bottom: 10px;position: absolute;"></paper-button>
    <content></content>
  </template>
  <script type="application/dart" src="register-dialog.dart"></script>
</polymer-element>

register-dialog.dart

import 'package:polymer/polymer.dart';

void main() {

}

@CustomTag('register-dialog')
class RegisterDialog extends PolymerElement{

  @observable String test = 'Test erfolgreich';

  RegisterDialog.created() : super.created() {

    }

  register(event, detail, target){        
    print ('register (register-dialog.dart)');
  }    
}

“register(event, detail, target)”中的打印永远不会被执行。我尝试了纸质按钮的点击功能,并在不同的函数调用之间变化,如“register()”和“{{register}}”。 (顺便说一下,我对 observable {{test}} 的实验也失败了,我的代码不会改变视图中的任何内容。

除了解决我的问题的任何帮助之外,如果有人可以指出一些包含多个视图的公共(dart + polymer)代码,那将是有帮助的。我希望看到一种在这些视图之间切换并在它们之间传递插入数据的好方法。

【问题讨论】:

    标签: button dart polymer observable


    【解决方案1】:

    胡子不见了

    on-click="{{register}}"
    

    编辑

    关于评论中问题的其他信息

    我有几个月没有开发应用程序,只开发组件。
    我开发的最后一个聚合物应用程序是手动完成的,例如:

    <app-element>
      <template>
        <template if="{{model.view == 'movie'}}"><my-movie model="{{model.movie}}"></my-movie></template>
        <template if="{{model.view == 'actor'}}"><my-actor model="{{model.actor}}"></my-actor></template>
        ...
      </template>
    </app-element>
    

    .

    class Model extends Object with Observable {
      @observable String view = 'movie';
      Model() {
        // use hashChanged event and pushState 
        // and set this.view accordingly 
      }
      @observable MovieModel = new MovieModel();
      @observable ActorModel = new ActorModel();
      ...
    }
    
    class MovieModel extends Object with Observable {
      @observable String name;
      ...
    }
    
    class ActorModel extends Object with Observable {
      @observable String name;
      ...
    }
    
    @CustomTag('app-element')
    class AppElement extends PolymerElement {
      AppElement.created() : super.created();
    
      Model model = new Model();
    }
    

    我有兴趣尝试http://pub.dartlang.org/packages/route_hierarchical,但还没有时间。
    最近,我还与 Dart 团队的一位成员讨论了如何将这个包与 Polymer 一起使用的文档。

    【讨论】:

    • 我也试过留胡子。但问题似乎出在其他地方。
    • 您使用的是什么 Polymer 版本?我刚刚看到,当您有脚本时,您需要删除 register-element 元素中的 noscript 属性。你也不应该在 Dart 文件名中使用 -_ 很好)。
    • 谢谢,我完全忽略了这一点!您是否碰巧有一个公共项目,我可以看到您如何管理您的视图?
    • 我用一些关于我如何处理视图的信息扩展了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多