Ho cercato senza successo di implementare un componente Web che integra Polymer e TypeScript. Qualcuno sa dove posso vedere un campione? Esiste un'alternativa a Polymer? GraziePolymer e TypeScript
8
A
risposta
7
Mi è venuta in mente una soluzione ... forse non la soluzione migliore ma almeno una specie di soluzione di lavoro. Ancora bisogno di indagare più a fondo su questo.
l'elemento personalizzato HTML:
<link rel="import" href="../polymer/bower_components/polymer/polymer.html"/>
<polymer-element name="my-element" constructor="MyElement5">
<template>
<span id="el"></span>
</template>
<script src="my-element.js"/>
</polymer-element>
mio file dattiloscritto (MY-element.ts):
class Owner{
ownerinfo:string;
constructor(public firstName:string, public age:number){
this.ownerinfo = firstName + " " + age + " yo";
}
}
var polymer = window['Polymer'];
polymer('my-element',{
owner:new Owner('TheOwner', 100),
ready:function(){
this.$.el.textContent = this.owner.ownerinfo;
}
})
e, infine, il codice JavaScript generato dalla dattiloscritto:
var Owner = (function() {
function Owner(firstName, age) {
this.firstName = firstName;
this.age = age;
this.ownerinfo = firstName + " " + age + " yo";
}
return Owner;
})();
var polymer = window['Polymer'];
polymer('my-element', {
owner: new Owner('TheOwner', 100),
ready: function() {
this.$.el.textContent = this.owner.ownerinfo;
}
});
//# sourceMappingURL=my-element.js.map
E con questo funziona e posso anche eseguire il debug in Firefox o Chrome. Vediamo se arrivo con un passo indietro su questo ... Spero che questo aiuti gli altri ragazzi.
Alla fine stavo pensando troppo ... e si è dimenticato il più importante: dattiloscritto è JavaScript LoL
== quasi dimenticato il mio modello Piramide:
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="${request.static_url('my_project:static/polymer/bower_components/platform/platform.js')}"/>
<script src="http://code.jquery.com/jquery-2.1.1.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>
<!-- Custom webcomponents -->
<link rel="import" href="${request.static_url('my_project:static/webcomponents/my-element.html')}"/>
<!-- Bootstrap core CSS -->
<link href="//oss.maxcdn.com/libs/twitter-bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
<link href="${request.static_url('my_project:static/theme.css')}" rel="stylesheet">
</head>
<body>
<!-- My Super Custom WebComponent -->
<my-element></my-element>
<script src="//oss.maxcdn.com/libs/twitter-bootstrap/3.0.3/js/bootstrap.min.js"></script>
</body>
</html>
Impressionante ... Polymer + TypeScript + Python
Problemi correlati
- 1. Typescript with Polymer 1.0?
- 2. Utilizzo di Polymer e requirejs
- 3. Polymer questo e Cytoscape questo
- 4. Notifica TypeScript e Chrome
- 5. Webpack e Typescript `__extends`
- 6. Bundling typeScript e minification?
- 7. OpenLayers e TypeScript?
- 8. Mixing Polymer 1.0 e Angular 1.x
- 9. Polymer RESTful CRUD app
- 10. Which Polymer Datepicker
- 11. Polymer 1.0 + Webpack
- 12. Polymer 1.0 - injectBoundHTML() alternativo
- 13. Polymer Vulcanize CSS
- 14. Polymer 1.0 - routing
- 15. Proprietà indefinite Angular2 e TypeScript
- 16. Promesse Angular 2 e TypeScript
- 17. Problemi con TypeScript e TFS
- 18. Typescript, google.maps.d.ts e tipo enforcement
- 19. Typescript TSX e parametri generici
- 20. Webpack resolve.root e caricatore TypeScript
- 21. jQuery plugins and Polymer elements
- 22. Polymer Get Paper Input Value
- 23. attributo Nascosto in Polymer 1.0
- 24. Google Polymer with rails 4
- 25. Come funziona Polymer Hero Transition
- 26. Modello condizionale su Polymer 1.0
- 27. Posso usare Polymer su JSFiddle?
- 28. Hero Animation in polymer 1.0
- 29. Come usare SASS con Polymer?
- 30. Polymer 1.0 - Classi css vincolanti
Si consideri inoltre l'aggiunta di un file polymer.d.ts in modo che non sia necessario eseguire la 'var polymer = window ['Polymer'];' business. Ad esempio: 'var Polymer: (name: string, attributes?: {[FieldName: string]: any}) => void;' –
Consigli utili, grazie –
Considerare l'utilizzo del flag --noImplicitAny su tsc-- As @PeterBurns stava indicando, var polymer = window ['Polymer']; finisce con il polimero di tipo any, che non ti dà alcun tipo di protezione. Anche se non vuoi digitare completamente tutto Polymer, iniziare con un'interfaccia Polymer di base che aggiungi via via sarà un ottimo inizio. –