zoukankan      html  css  js  c++  java
  • polymer-developer guide-registration and lifecycle

    注册和声明周期

    my = Polymer({
         is: "proto-element",
         created: function() {
          this.innerHTML = 'created';
         }     
       });
    //注册之后会返回构造函数,创建实例的两种方法
    var el1 = document.createElement('proto-element');
    var el2 = new my();
    

    使用polymer注册自定义元素,created function 中的this.innerHTML='sfp',不会被执行

    传递参数需要使用factoryImpl,这样的话,只能通过构造函数来创建实例

    在元素初始化(本地dom建立,默认值设定)之后,才调用factoryImpl

    现在只支持扩展本地元素(给input加其他的样式),而不支持扩展自定义元素。扩展实例

    MyInput = Polymer({
      is: 'my-input',
      extends: 'input',
      created: function() {
        this.style.border = '1px solid red';
      }
    });
    
    var el1 = new MyInput();
    console.log(el1 instanceof HTMLInputElement); // true
    
    var el2 = document.createElement('input', 'my-input');
    console.log(el2 instanceof HTMLInputElement); // true
    
    //使用
    <input is="my-input">
    

    声明周期内的回调函数:created,attached,detached,attributeChanged,ready

    ready: function() {
      <!-- access a local DOM element by ID using this.$ -->
      //自动发现节点
      this.$.header.textContent = 'Hello!';
    }
    

    polymer()中可以加的函数有以上5个,或者createdCallback, attachedCallback, detachedCallback, attributeChangedCallback。

    元素初始化的顺序:

    created callback
    local DOM constructed
    default values set
    ready callback
    factoryImpl callback
    attached callback
    

    回调函数的注册?看不懂

    设定属性

    Polymer({
        is: 'x-custom',
        hostAttributes: {
          role: 'button',
          'aria-disabled': true,
          tabindex: 0
        }
      });
    //效果:<x-custom role="button" aria-disabled tabindex="0"></x-custom>

    只设定元素的原型,而不立即注册它

    var MyElement = Polymer.Class({
      is: 'my-element',
      // See below for lifecycle callbacks
      created: function() {
        this.innerHTML = 'My element!';
      }
    });
    //现在注册
    document.registerElement('my-element', MyElement);
    var el = new MyElement();
  • 相关阅读:
    C# RabbitMQ
    使用HttpClient和WebRequest时POST一个对象的写法
    HTTP中application/x-www-form-urlencoded字符说明
    MVC5 Entity Framework学习
    SQL Server安全
    Entity Framework查询
    COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问。最新解决方案
    js中精度问题以及解决方案
    string.format
    t-sql对被除数为0&除数小于被除数结果为0&除法保留2位小数的处理
  • 原文地址:https://www.cnblogs.com/wang-jing/p/4655819.html
Copyright © 2011-2022 走看看