jQuery MiniUI

 找回密码
 立即注册
查看: 5019|回复: 10
打印 上一主题 下一主题

自定义控件自定义属性问题 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2014-4-22 15:24:23 |只看该作者 |倒序浏览
自定义控件 自定义属性类似 html元素属性 vtype , showToolbar  
<input name="ApplyDateStart" style="width: 90%"  relatedDate="ApplyDateEnd"   class="mini-datefrom"
在自定义代码如何取到这些自己增加的元素属性 如relatedDate
UserControl.ButtonShowPanel = function () {
    UserControl.ButtonShowPanel.superclass.constructor.call(this);
    this.initComponents();
    this.bindEvents();
}


在 bindEvents 调用  this.on('click' 等事件方法 这些新增属性能自动获得。 但是
initComponents 时,是获取不到这些新增的属性。

Rank: 8Rank: 8

沙发
发表于 2014-4-22 15:36:00 |只看该作者
http://miniui.com/bbs/forum.php? ... 8431&highlight=自定义属性
参考下这个帖子

Rank: 3Rank: 3

板凳
发表于 2014-4-22 15:55:39 |只看该作者
lost 发表于 2014-4-22 15:36
http://miniui.com/bbs/forum.php?mod=viewthread&tid=18431&highlight=自定义属性
参考下这个帖子 ...

我指的自定义控件时,继承你们的控件,再增加新的属性用于处理控件之间的联动。这种data-option不适合自定义控件使用。

Rank: 8Rank: 8

地板
发表于 2014-4-22 16:06:33 |只看该作者
lljuser 发表于 2014-4-22 15:55
我指的自定义控件时,继承你们的控件,再增加新的属性用于处理控件之间的联动。这种data-option不适合自 ...

自定义的属性只能data-option来定义

Rank: 3Rank: 3

5#
发表于 2014-4-22 16:12:57 |只看该作者
factory 发表于 2014-4-22 16:06
自定义的属性只能data-option来定义

//--------------------------------mini-MultiFile对象定义开始 从mini-Panel继承----------------------------------------
mini.ux.MultiFile = function () {
    mini.ux.MultiFile.superclass.constructor.call(this);

    this.files = [];
    this.initControls();
    this.initEvents();

}
mini.extend(mini.ux.MultiFile, mini.Splitter, {
    formField: true,
    width: "100%",
    height: 120,
    allowResize: false,
    handlerSize: 0,
    required: false, //是否必填
    readonly: false, //是否只读
    downloadDisabled: false, //是否下载
    disabled: false, //是否禁用
    perrowcount: 2, //每行文件数
    maximumupload: "", //上传的最大文件大小
    maxnumbertoupload: "", //上传的最大文件数量
    filter: "", //上传的文件类型
    allowthumbnail: false, //是否缩略图
    src: "system", //所属系统模块
    uiCls: "mini-multifile",



mini.parse(this.el);
        var attrs = mini.ux.MultiFile.superclass.getAttrs.call(this, this.el);

Rank: 3Rank: 3

6#
发表于 2014-4-22 16:19:52 |只看该作者
lljuser 发表于 2014-4-22 16:12
//--------------------------------mini-MultiFile对象定义开始 从mini-Panel继承--------------------- ...

这些新增的属性,基本上都在自定义控件里新增的方法被执行时才能取取。我想在渲染初始化的就拿到这些属性比如
mini.ux.MultiFile.superclass.getAttrs.call(this, this.el); 这个能取到所有新增的属性,我想只取其中一个,应该用什么方法
getAttrs: function (el) {
        var attrs = UserControl.PopGrid.superclass.getAttrs.call(this, el);
        mini._ParseString(el, attrs,
            ["popBefore", "popAfter"]
        );
        return attrs;
    }

Rank: 8Rank: 8

7#
发表于 2014-4-22 16:37:59 |只看该作者
lljuser 发表于 2014-4-22 16:19
这些新增的属性,基本上都在自定义控件里新增的方法被执行时才能取取。我想在渲染初始化的就拿到这些属性 ...

你在自定义控件里面加上对应标签的属性的 setxxxx和getXXX方法就能使用该标签了

比如你自定义一个 myAttrs属性

对应就写上getMyAttrs()和setMyAttrs()方法

Rank: 3Rank: 3

8#
发表于 2014-4-22 16:56:36 |只看该作者
factory 发表于 2014-4-22 16:37
你在自定义控件里面加上对应标签的属性的 setxxxx和getXXX方法就能使用该标签了

比如你自定义一个 myAtt ...

getMyAttrs里面怎么样写呢? 空方法?另外自定久onxxxx事件怎么声明

Rank: 8Rank: 8

9#
发表于 2014-4-22 17:52:33 |只看该作者
lljuser 发表于 2014-4-22 16:56
getMyAttrs里面怎么样写呢? 空方法?另外自定久onxxxx事件怎么声明

参考试用包里demo/diyclass下的js

Rank: 3Rank: 3

10#
发表于 2014-4-24 10:39:04 |只看该作者
felt 发表于 2014-4-22 17:52
参考试用包里demo/diyclass下的js

属性问题基本上解决了,另外关于事件 当
bindEvents: function () {
        var that = this;
        this.on('buttonclick', function (e) {
            that.fire("popBefore"));
            that.fire("popAfter");

因为我自定义的事件onpopbefore 方法是有返回值的,that.fire只执行事件,获取不到方法的返回值,怎么才能获到自定义事件方法的返回值呢?

Archiver|普加软件

GMT+8, 2024-11-17 09:12 , Processed in 1.025955 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部