component

引用名:component

说明:所有组件需要继承自 component 。component 中定义了组件的接口函数

示例代码:

/*
 组件类定义。
 */
define(['component'], function ( Component) {
    'use strict';
    return Component.extend({
        renderConfigurator: function () {

        },
        init: function () {

        },
        renderView: function () {

        }
    });
});

component 静态方法

component.extend(obj)

说明:工厂类,通过此方法可以创建继承自 component 的类定义


component.prototype

function init(data)

说明:初始化组件时调用

function renderView()

说明:渲染预览窗口,当用户修改配置数据时,此方法会多次执行已渲染最新的预览效果

function renderConfigurator()

说明:渲染配置窗口

function getData()

说明:返回需要保存的用户数据

functioin isValid()

说明:验证用户数据是否正确,当用户保存数据时都会调用此方法已保证每个组件自身数据正常

function beforeInit()

说明:在init 前执行,如果返回false,将不会创建该组件


component 其他属性/方法

说明:组件的初始化是由平台操作的。在创建一个组件时,会为组件添加如下属性,在编写组件代码时,可以使用this.xxx 来得到。


this.viewEl

说明:当前组件实例在预览窗的框架 dom


this.configEl

说明:当前组件实例在配置窗的框架 dom


this.opts

说明:获取组件的可编辑、可移动、可删除属性


this.data

说明:内置变量,默认所有用户数据是保存在this.data中。当调用this.getData()时返回this.data,开发者也可以不使用,但需要保证在覆盖getData() 方法时返回正确的用户配置数据。


this.getContext()

说明:获取编辑器内当前所有组件的数据对象(上下文环境)


function this.setComponentContainer(els, names, opts)

说明:设置一个或多个 dom 为容器,用户可以拖拽组件到容器内

参数:

els: 容器组件的 dom

names: 为每个容器设置的名字,不可重复

opts:{acceptRole:function(meta){}}: 容器可以接收组件的规则回调


this._meta

说明:获取当前组件的 meta(编写的组件package.json)数据.

示例代码

/*
 组件类定义。
 */
define(['component'], function ( Component) {
    'use strict';
    return Component.extend({
        "html_edit": "<div class='mod mod-html'>{{{content}}}</div>",
        renderConfigurator: function () {

        },
        init: function () {
           console.log(this._meta);
           this.setComponentContainer(this.viewEl.find('.sub-container'),'sub-container',{acceptRole:function(meta){return true}});
        },
        renderView: function () {

        }
    });
});