2015-10-27 15 views
6

Ich habe ein Problem mit CustomAttribute. Ich möchte es verwenden, um jquery-ui datepicker anzuschließen. Idee von hier genommen: http://www.danyow.net/jquery-ui-datepicker-with-aurelia/Aurelia customAttribute funktioniert nicht

Es sieht jedoch so aus, als ob es überhaupt nicht funktioniert. Ich habe versucht, die Anwendung zu debuggen und es sieht so aus, als ob [email protected] überhaupt nicht gefeuert wird. Die Datei selbst wird jedoch vom Server angefordert. Das Schlimmste ist, dass ich es Arbeit gestern Abend hatte, aber heute Morgen ...

Ich habe in meiner Gabel des Skeletts Anwendung einfaches Beispiel erstellt: https://github.com/Exsilium122/skeleton-navigation so ist es bereit für troubleshoot zu werden geklont und auszuführen.

Die wichtigsten zwei Dateien:


welcome.html

<template> 
    <require from="./resources/datepicker"></require> 
    <input id="myDate" datepicker="datepicker" value.bind="timestamp | dateFormat"/> 
</template> 

datepicker.js

import {inject, customAttribute} from 'aurelia-framework'; 
import 'jquery-ui'; 
import 'jquery-ui/themes/cupertino/jquery-ui.css!'; 

@customAttribute('datepicker') 
@inject(Element) 
export class Datepicker { 
    constructor(element) { 
     this.element = element; 
    } 

    attached =() => { 
     console.log("attached Datepicker"); 
     $(this.element).datepicker({ 
      dateFormat: 'mm/dd/yy' 
     }).on('change', e => fireEvent(e.target, 'input')); 

    } 

    detached =() => { 
     console.log("detached Datepicker"); 
     $(this.element).datepicker('destroy').off('change'); 
    } 
} 

function createEvent(name) { 
    var event = document.createEvent('Event'); 
    event.initEvent(name, true, true); 
    return event; 
} 

function fireEvent(element, name) { 
    var event = createEvent(name); 
    element.dispatchEvent(event); 
} 

und die Konsole ist sauber:

DEBUG [Aurelia] Lade Plugin http://localhost:9000/jspm_packages/github/aurelia/[email protected]. aurelia-logging-console.js: 38 DEBUG [aurelia] Konfiguriertes Plugin http://localhost:9000/jspm_packages/github/aurelia/[email protected]. Aurelia-Logging-Konsole.js: 38 DEBUG [Aurelia] Lade Plugin http://localhost:9000/jspm_packages/github/aurelia/[email protected]. aurelia-logging-console.js: 38 DEBUG [aurelia] Konfiguriertes Plugin http://localhost:9000/jspm_packages/github/aurelia/[email protected]. Aurelia-Logging-Konsole.js: 38 DEBUG [Aurelia] Lade Plugin http://localhost:9000/jspm_packages/github/aurelia/[email protected]. aurelia-logging-console.js: 38 DEBUG [aurelia] Konfiguriertes Plugin http://localhost:9000/jspm_packages/github/aurelia/[email protected]. Aurelia-Logging-Konsole.js: 38 DEBUG [Aurelia] Lade Plugin http://localhost:9000/jspm_packages/github/aurelia/[email protected]. aurelia-logging-console.js: 38 DEBUG [aurelia] Konfiguriertes Plugin http://localhost:9000/jspm_packages/github/aurelia/[email protected]. Aurelia-Logging-Konsole.js: 38 DEBUG [Aurelia] Lade Plugin http://localhost:9000/jspm_packages/github/aurelia/[email protected]. aurelia-logging-console.js: 38 DEBUG [aurelia] Konfiguriertes Plugin http://localhost:9000/jspm_packages/github/aurelia/[email protected]. aurelia-logging-console.js: 38 DEBUG [Aurelia] Laden Plugin-Ressourcen/Index. aurelia-logging-console.js: 38 DEBUG [aurelia] Konfigurierte Plugin-Ressourcen/Index. aurelia-logging-console.js: 46 INFO [aurelia] Aurelia Gestartet aurelia-logging-console.js: 38 DEBUG [templating] Importieren von Ressourcen für http://localhost:9000/dist/app.html ["nav-bar.html", "bootstrap/css/bootstrap. css "] aurelia-logging-console.js: 38 DEBUG [Templating] Importieren von Ressourcen für http://localhost:9000/dist/nav-bar.html [] Aurelia-Logging-Konsole.js: 38 DEBUG [Templat] Import Ressourcen für http://localhost:9000/dist/welcome.html [ "http://localhost:9000/dist/resources/datepicker"]

Antwort

6

attached =() => { muß attached() { geändert werden, wie in dem gitter diskutiert.

Entsprechende Änderungen wurden für die detached Methode erforderlich.

Diese Frage kann geschlossen werden - das OP hat das Problem in der Aurelia gitter gelöst.

3

nur tat

  • Klon von Ihrem Repo
  • npm installieren jspm
  • npm installieren
  • jspm install -y

und raten Sie wh beim. es funktioniert :)

http://imagebin.ca/v/2KV4cFzITHtX

+0

btw. mit chrome Version 46.0.2490.71 m unter Windows – fops

+0

vielen Dank für Ihre Mühe. Ich habe mit diesem Problem für einige Stunden gekämpft, also habe ich die Frage auf Stapel gestellt und auch gitter versucht. Dann hat Jeremy Danyow mir geholfen. Ich war so glücklich, dass ich vergessen habe, zurück zu stapeln und die Frage zu schließen. Deshalb tut es mir leid, Ihre Zeit zu verschwenden. Nochmals vielen Dank für Ihre Mühe. Es funktionierte, weil ich den Fehler korrigiert und dem Repo zugesagt habe. –

+0

np ... froh, dass es funktioniert :) – fops

Verwandte Themen