avalon组件同名属性存在问题

发布于 2022-09-03 13:50:32 字数 2009 浏览 16 评论 0

avalon不同组件嵌套使用如果两个套件有相同属性名会存在问题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="../lib/avalon.js"></script>
    <link href="./index.css" rel="stylesheet" />
    <script>

        var vm = avalon.define({
            $id:"test-ant",
            size:"small",
            shape:"circle-outline",
            type:"ghost"
        })
        avalon.component("ms-icon",{
            template:"<i ms-class='[\"anticon\",\"anticon-\"+@type]'></i>",
            defaults:{

                type:''
            }


        })
        avalon.component("ms-button",{

            defaults:{
                prefixCls:'ant-btn',
                type:undefined,
                htmlType:'button',
                shape:undefined,
                size:undefined,
                loading:false,
                className:'',
                sizeCls:function(){
                    if(this.size){
                        return this.prefixCls+"-"+({
                            large:'lg',
                            small:'sm'
                        })[this.size];
                    }
                    return ""
                },
                getCls:function(k){
                    return this[k]?this.prefixCls+"-"+this[k]:"";
                },

                buttonText:"test"
            },

            soleSlot:"buttonText",
            template:'<button ms-attr="{type:@htmlType}" ms-class="[@prefixCls,@sizeCls(),@getCls(\'type\'),@getCls(\'shape\'),@getCls(\'loading\')]"><slot name="buttonText"></slot></button>'
        })
    </script>
</head>
<body ms-controller="test-ant" style="padding: 50px">

<ms-button ms-widget="{type:@type}"><ms-icon ms-widget="{type:'search'}"></ms-icon></ms-button>
</body>
</html>

这样导致icon组件的type没法正常显示。
这个是bug还是设置有问题。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

謌踐踏愛綪 2022-09-10 13:50:34
<button ms-attr="{type:@htmlType}" ms-class="[@prefixCls,@sizeCls(),@getCls('type'),@getCls('shape'),@getCls('loading')]" is="ms-button" wid="w1472628149431" type="button" class="ant-btn ant-btn-sm ant-btn-ghost ant-btn-circle-outline" old-change-class="ant-btn ant-btn-sm ant-btn-ghost ant-btn-circle-outline "><!--slot:buttonText--><i ms-class="["anticon","anticon-"+@type]" is="ms-icon" wid="w1472628149439" class="anticon anticon-ghost" old-change-class="anticon anticon-ghost"></i><!--slot-end:--></button>

我看到i标签已经有 anticon anticon-ghost

还不对吗

难理解 2022-09-10 13:50:34

不对哦。icon要显示的应该是anticon anticon-search

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文