Re: Web Component Element definition

Hi,

I actually came across this issue while using Polymer's platform.js...
I could not make it work...

I have to do magic like this...
<element name="x-bauglir-listitem" constructor="XBauglirListItem">
   <script>
     if (this !== window)
     {
       var first = true;
       this.register({
         prototype: {
           "readyCallback": function() {


             if (first)
             {
               Object.defineProperties(XBauglirListItem.prototype, {
                 "foox": {
                   "value": function() {
                     alert('d');
                   },
                 }
               });
             }
             first = false;
           },

         }
       });
     }
   </script>
</element>
putting the definition outside readyCallback caused unknown 
XBauglirListItem error

so I'm wondering how it's gonna be in web Components... since the 
mechanism is the same... until readyCallback i called, the construstor 
function does not exists I assume

-------------------
({
   readyCallback: function() { },
   get foo() {},
   set foo() {}
})
confuses me... I 've seen the whole
({
})
contruct in web comps for the first time and I think it's web comps 
specific...

and the setters and getters... from your example... are those getter and 
setters for method foo or property foo? Shouldn't setter have a 
parameter? The value that is about to be set? how do I define whether 
property is changable, enumerable?

Or is this working proposition of Web Comps based on working proposition 
of ES6?

Brona

On 23.6.2013 21:11, Scott Miles wrote:
> To be clear, this question doesn't really have anything to do with the 
> components spec. The bottom line from the spec is that the 
> completion-value of the script should reference an object that will be 
> used as the element prototype.
>
> How you generate that prototype is completely up to you, and there are 
> many ways you can do it.  See examples below.
>
> Fwiw, my team (http://www.polymer-project.org/) is not an advocate of 
> the completion-value gambit. We are pushing for two-way 
> initialization. In other words, a separate method to register the 
> prototype.
>
> In any case, here are examples.
>
> You can use descriptors, but you don't need them for get/set:
>
> ({
>   readyCallback: function() { },
>   get foo() {},
>   set foo() {}
> })
>
> if you really want to use descriptors, you can do
>
> Object.create(Object.prototype, {
>    property: {
>     get: function() { return 5; },
>     set: function(value) {}
>    }
> });
>
> or you can mix and match:
>
> var prototype = {
>   readyCallback: function() { },
> };
> Object.defineProperty(prototype, {
> property: {
>       get: function() { return 5; },
>       set: function(value) {}
>   }
> });
> prototype;
>
>
> On Sun, Jun 23, 2013 at 11:45 AM, Bronislav Klučka 
> <Bronislav.Klucka@bauglir.com <mailto:Bronislav.Klucka@bauglir.com>> 
> wrote:
>
>
>     On 23.6.2013 20:42, Bronislav Klučka wrote:
>
>         Hi,
>         http://www.w3.org/TR/2013/WD-components-intro-20130606/#lifecycle-callbacks
>
>         shows defining element methods, next to the life cycle it also
>         shows definition of methods "ticks" and "chime",
>         I wonder how this construct
>
>         ({
>
>         });
>
>         is compatible with ES5 object properties descriptors, in ES5
>         it is possible to define getters and settes for
>         properties/methods, is it the possible to do something like
>
>         <element .....>
>         ...
>         <script>
>
>         ({
>           readyCallback: function () {
>             //init component
>           },
>         });
>
>         Object.defineProperties(this.prototype, {  // or maybe
>         Object.defineProperties(this, {
>           "property": {
>                 "get": function() { return 5; }
>                 "set": function(value) {}
>             }
>         });
>         </script>
>
>         </element>
>
>         Will it work? Is it suppose to work?
>
>         Brona
>
>
>
>     Of course I ment
>     Object.defineProperties(ElementConsructorName.prototype
>
>     Brona
>
>

-- 

s pozdravem
          Bronislav Klučka


http://www.bauglir.com <http://www.bauglir.com>

http://www.bauglir.com
Bronislav.Klucka@bauglir.com  <mailto:Bronislav.Klucka@bauglir.com>

   * webové aplikace
   * software na zakázku

Received on Sunday, 23 June 2013 19:39:14 UTC