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.

Reply via email to