收藏
回答

组件的 data里可以直接调用 methods 里的方法吗

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 需求 工具 7.0.5 2.7.3
    data: {
        showMenu: true,
        statusBarHeight: app.globalData.statusBarHeight,
        title: "更多",
        menus: [
            {
                title: "转发",
                icon: "",
                click: ,
            },
        ],
    },
 
    /**
     * 组件的方法列表
     */
    methods: {
        showMenu(): void {
            this.setData({
                showMenu: true,
            });
        },
        hideMenu(): void {
            this.setData({
                showMenu: false,
            });
        },
    },

我想在 data  - menus - click 属性中直接调用 methods 里的方法 现在来看貌似行不通?

回答关注问题邀请回答
收藏

1 个回答

  • 卢霄霄
    卢霄霄
    2019-07-24

    为啥这么怪的需求。。直接调用不行,不过可以反过来

    data: {

        click: function(){

            console.log(1)

        }

    },

    methods: {

        clickFn(){

            this.data.click()

        }

    }


    2019-07-24
    有用
    回复 7
    • Evolver
      Evolver
      2019-07-24
      因为 menus 里后期会有很多个数组 想直接循环渲染到页面上 然后在页面上直接 bandtap。。。
      2019-07-24
      回复
    • 卢霄霄
      卢霄霄
      2019-07-24回复Evolver
      哦 菜单里的bindtap方法还不一样 是吗?那可以做个公共入口,然后传递方法名字呗。
      2019-07-24
      回复
    • 卢霄霄
      卢霄霄
      2019-07-24回复Evolver


      data: {
          menu: [{
            funcName:"aFn"
          },{
            funcName:"bFn"
          }]
        },
       
      methods: {
          clickFn(e){
            this[e.currentTarget.dataset.name]()
          },
          aFn() {
            console.log("a")
          },
          bFn() {
            console.log("b")
          }
        }
       
      <text bindtap="clickFn" wx:for="{{menu}}" data-name="{{item.funcName}}">components/test.wxml</text>

      大概这么个意思

      2019-07-24
      回复
    • Evolver
      Evolver
      2019-07-24回复卢霄霄

      是的 有个比较神奇的操作是直接在 ready 的生命周期里赋值 click 的值写成字符串 名字要跟 methods 里的方法一样



      但是感觉这样还是不够优雅哈哈哈。。。

      2019-07-24
      回复
    • 卢霄霄
      卢霄霄
      2019-07-24回复Evolver
      诶??这样写居然也能绑定上吗,能给我看看你wxml怎么写的吗
      2019-07-24
      回复
    查看更多(2)
登录 后发表内容