I have tried to do some hacks to get it to work but my JS isnt that great,
perhaps someone can improve on this:
class PolymerBase {
$: any;
constructor() {
// Allow polymer to define this
delete this["$"];
// Turn all class functions into variables
for (var i in this) {
if (!this.hasOwnProperty(i) && typeof (this[i]) === 'function'
&& i != 'constructor') {
var func = this[i];
this[i] = function () { func(); }
}
}
}
}
class MyElement extends PolymerBase {
age = 25;
name = "Daniel";
color = "red";
owner = "Eric";
setFocus() {
console.log("$: " + this.$);
console.log("name: " + this.name);
this.name
this.$.nameInput.focus();
}
}
Polymer(new MyElement());
On Tuesday, 21 October 2014 12:20:06 UTC+8, [email protected] wrote:
>
> Did you find a way to solve this?
>
> You can do something like this:
>
> class MyElement {
>
> age = 25;
> name = "Daniel";
> color = "red";
> owner = "Eric";
>
> //setFocus() {
> // this.$.nameInput.focus();
> //}
> }
>
> Polymer(new MyElement());
>
> That works, but the problem is you cant access the $ or any other special
> polymer properties. Any clues?
>
> Mike
>
> On Friday, 27 June 2014 05:13:07 UTC+8, [email protected] wrote:
>>
>> Hello!
>>
>> I've been looking Polymer for a year now, and still this syntax:
>>
>> Polymer('seed-element', {
>> author: 'Dimitri Glazkov',
>> fancy: false,
>> ready: function() {
>> },
>> sayHello: function(greeting) {
>> var response = greeting || 'Hello World!';
>> return 'seed-element says, ' + response;
>> },
>> fireLasers: function() {
>> this.fire('seed-element-lasers-success', { sound: 'Pew pew pew!'
>> });
>> }
>> });
>>
>> Gives me creeps. Not a single IDE will support anything useful for that
>> syntax. Why this syntax is like this? It should follow the biggest
>> Javascript libraries to achive greater interoperability, e.g. Backbone
>> and inheritance <http://www.erichynds.com/blog/backbone-and-inheritance>
>>
>> I really like TypeScript, and I suspect above kind of syntax does not
>> allow normal inheritance. If the Polymer were made to follow semi-standard,
>> one could simply inherit from Polymer element. So one could in TypeScript
>> use familiar:
>>
>> class SeedElement extends PolymerElement {
>> fancy: boolean = false
>> author: string = "Dimitri Glazkov"
>> public sayHello (greeting: String) {
>>
>> }
>>
>> public fireLasers () {
>>
>> }
>> }
>>
>> All it takes, I suspect is to have normal "javascript inheritance" in
>> Polymer, just like in Backbone (e.g. I can already inherit from
>> Backbone.View using TypeScript syntax) it's pure JavaScript library.
>>
>> Thanks.
>>
>
Follow Polymer on Google+: plus.google.com/107187849809354688692
---
You received this message because you are subscribed to the Google Groups
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/polymer-dev/478aa718-6462-403a-acb7-b37856b5dce2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.