Advertisement
Guest User

Polymer Dart Core Ajax and Core List

a guest
Feb 8th, 2015
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Dart 3.34 KB | None | 0 0
  1. main_app.html
  2. ===================
  3. <polymer-element name="main-app" >
  4.   <template id="app">
  5.       <core-ajax-dart auto id="_ajax"
  6.                url="https://polymer-contacts.firebaseio.com/{{category}}.json"
  7.                response="{{contacts}}" handleAs="json"></core-ajax-dart>
  8.       <core-animated-pages id="pages" transitions="cross-fade fade-slide-up fade-scale" fit>
  9.  
  10.           <section layout vertical>
  11.               <contacts-page class="page" id="contacts" contacts="{{contacts}}"
  12.                              heading="{{heading}}"
  13.                              flex>
  14.               </contacts-page>
  15.           </section>
  16.       </core-animated-pages>
  17.   </template>
  18.   <script type="application/dart" src="main_app.dart"></script>
  19. </polymer-element>
  20.  
  21. main_app.dart
  22. ======================
  23. import 'dart:html';
  24. import 'package:polymer/polymer.dart';
  25. import 'package:core_elements/core_ajax_dart.dart';
  26. import 'elements/contacts_page/contacts_page.dart';
  27. /// A Polymer `<main-app>` element.
  28. @CustomTag('main-app')
  29. class MainApp extends PolymerElement {
  30.   @observable String category;
  31.   String heading;
  32.   List contacts;
  33.  
  34.   MainApp.created() : super.created(){
  35.     var DEFAULT_ROUTE = '/contacts/all';
  36.     category = 'all';  
  37.   }
  38.  
  39.   ready() {
  40.     super.ready();
  41.     ContactsPage cp = $['contacts'] as ContactsPage;
  42.     cp.heading = "All Contacts";
  43.     var ajax = $['_ajax'] as CoreAjax;
  44.     ajax.on["core-response"].listen((event) {
  45.       var detail = event.detail;
  46.       var response = detail['response'];
  47.       window.console.info("Data load event called");
  48.       cp.contacts = response;
  49.     });
  50.   }
  51. }
  52.  
  53. contacts_page.html
  54. ====================
  55. <polymer-element name="contacts-page" extends="base-page" attributes="contacts heading">
  56.     <template>
  57.             <!-- Main -->
  58.             <div main layout vertical>
  59.                 <core-header-panel id="headerPanel" mode="seamed" flex>
  60.                     <div class="content">
  61.                         <core-list-dart id="list" data="{{contacts}}"
  62.                                    scrollTarget="{{$['headerPanel.scroller']}}"
  63.                                    runwayFactor="5">
  64.                             <template>
  65.                                 <a _href="{{index | getUrl}}" on-click="{{navigate}}">
  66.                                     <div class="row" layout horizontal center>
  67.                                         <core-image src="{{model.avatar}}" preload sizing="cover">
  68.                                         </core-image>
  69.                                         <div flex>{{model.name}}</div>
  70.                                     </div>
  71.                                 </a>
  72.                             </template>
  73.                         </core-list-dart>
  74.                     </div>
  75.                 </core-header-panel>
  76.             </div>
  77.         </core-drawer-panel>
  78.     </template>
  79.     <script type="application/dart" src="contacts_page.dart"></script>
  80. </polymer-element>
  81.  
  82. contacts_page.dart
  83. =====================
  84. import 'package:polymer/polymer.dart';
  85. import 'package:core_elements/core_drawer_panel.dart';
  86. import 'package:core_elements/core_list_dart.dart';
  87. import 'dart:html';
  88.  
  89. @CustomTag('contacts-page')
  90. class ContactsPage extends PolymerElement{
  91.   @published String heading;
  92.   @published List contacts;
  93.   ContactsPage.created() : super.created();
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement