收藏
回答

【建议】template里支持事件

问题模块
API和组件

几乎稍微有点复杂的组件就会有自己的事件处理。


目前现在想在小程序里开发复杂点的组件应用,模板和样式需要自己import,数据通过data传入,这都可以自己的解决。但如果这个template里有个button或者input的话该怎么办?


现在想自己处理的话就只能写东西编译了,这对有数十页的应用来说是个灾难。

最后一次编辑于  2017-04-27  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

14 个回答

  • Jeson
    Jeson
    2017-04-27

    向模板如何传递多个值呢? data={{val1}} val2?怎么传递过去

    2017-04-27
    赞同
    回复
  • Limichange(cm)
    Limichange(cm)
    2017-04-28

    data={{val1, val2}}

    2017-04-28
    赞同
    回复
  • 索桥
    索桥
    2017-05-02

    请问怎么解决template里事件绑定的?

    2017-05-02
    赞同
    回复
  • Limichange(cm)
    Limichange(cm)
    2017-05-03

    在Page里写方法,template能调用。

    2017-05-03
    赞同
    回复
  • 大V
    大V
    2017-05-11

    如果在page里面写方法,那模版引入到哪个page,就要把方法复制到哪个page里面?

    这个要怎么解决?

    2017-05-11
    赞同
    回复
  • Limichange(cm)
    Limichange(cm)
    2017-05-11

    你可以把模板的方法单独放在一个js里,如果哪个页面要用这些方法,就import到那个Page里.

    用Object.assign继承。

    2017-05-11
    赞同
    回复
  • 大V
    大V
    2017-05-11

    可以在js模块里面,给page增加事件响应的方法么?

    可以简单给个示例么?

    2017-05-11
    赞同
    回复
  • Limichange(cm)
    Limichange(cm)
    2017-05-11

    // avatar.wxml

    <template name="avatar">

        <view bindtap="show">Avatar</view>

    </template>


    // avatar.js

    export default {

        show () {

            alert('This is avatar')

        }

    }


    // indexPage.js

    import avatar from './avatar'


    Page({

        onLoad () {

            Object.assign(this, avatar);

            // or

            this.show = avatar.show

        }

    })


    // indexPage.wxml

    <import src="./avatar.wxml" />


    <template is="avatar" />

    2017-05-11
    赞同
    回复
  • 小云菜
    小云菜
    2017-05-12

    components定义如下:

    <text class="quit" bindtap="quit">退出</text>
    import * as wechat from '../../libs/wechat'
     
    export default {
        data: {
            userName: '',
        },
        quit(e) {
            console.log('header-title-quit');
            //清空个人信息及token,
            wechat.removeSNToken().then(() => {
                return wechat.removeSNUserInfo()
            }).then(() => {
                wx.redirectTo({ url: '../login/login' })
            });
        },
    }

    我使用deep-asign.js 将对象合并

    let p = deepAssign(storeSelect, headerTitle, errorMsg);
    console.log('p', p);
    // 创建页面实例对象
    Page(p)

    输出:


    然而quit事件仍然没激活,请问知道原因么?@侯耀

    2017-05-12
    赞同
    回复
  • Limichange(cm)
    Limichange(cm)
    2017-05-12

    你onLoad的时候再赋值试试

    2017-05-12
    赞同
    回复