我惊讶的发现,虽然微信小程序里面没有 ducument , window 的概念,但是可以通过 DOMParser 对象来获得一个 document 对象 ……不要问我怎么发现的,这里面的艰辛不足为外人道也。

然后我们就可以愉快的通过这个返回的对象来进行一系列解析操作啦~~~

8,<form/>里面无法获取<picker/>的取值?

在微信小程序的官方文档里,是指明了<form/>标签里可以提交<picker/>的数据的,但是如果你真的在<form/>标签里放了一个<picker/>的话,你会发现,童话里都是骗人的。什么鬼!说好的数据呢!!!死活都获取不了数据,甚至还会让整个程序崩掉。并且坑爹的是,在小程序官网上面的那个 DEMO 里面,关于<form/>标签的使用有一个例子,例子里面几乎包含了<form/>标签中会提取数据的所有控件,就是没有<picker/>

那怎么办?这当然是难不倒我的。最终我采取了这样的方式来解决这个问题:

<picker bindchange="onPickerChanged" value="{{index}}" range="{{array}}">

<input class="picker" disabled="disabled" name="type" value="{{array[index]}}"/>

</picker>

这是一个<form/>标签里面的<picker/>标签,我采取的方式是用一个<input/>标签来获取<picker/>的值,然后让<form/>获取<input/>的值,从而达到将<picker/>里面的值传递给<form/>的目的。

9,要实现多层列表?

在做wechat-weapp-gank的每天干货展示的页面的时候,有一个这样的页面需要实现:

这个东西说白了就是个两层的列表,在原先做 Android 的时候这个是很容易的,直接嵌套嘛,但是现在做小程序的这个效果还是遇到了一些问题。这其中最大的问题就是在嵌套的过程中究竟在绑定数据的时候应该怎么写——第二个列表应该怎么传数据进去呢?第二个列表的列表项应该怎么获取数据呢?最后我摸索出来的结果是这样的:

<view class="frame" wx:for="{{data}}">

<view class="tag">{{item.tag}}</view>

<view wx:for="{{item.singleItems}}">

<view class="singleItem" href="{{item.src}}">{{index}},{{item.title}}</view>

</view>

</view>

其中data是一个数组,它里面装的是一个一个的的 json 数据,每个 json 数据里面又装了tagsingleItems等数据,其中singleItems又是一个数组,它里面装的也是一个一个的 json 数据,每个 json 数据里装了每个二级列表的 item 所需的数据。

具体的可以去我的项目代码里去看,具体的代码路径在这里:post.wxml和post.js。

10,如何方便愉快的实现类似 Java 里面的静态变量的效果?

这点的话纯粹是我的一点执念吧,我是从事 Android 开发的,也有点开发中的小癖好,喜欢把一些字符串弄成全局静态的放到一个专门的地方去。如果是在Java里面的话,我喜欢这样做:

然后在调用的时候就可以这样做:

String appId = Constants.AppSign.V_APP_ID;

这样做我觉得很舒服,条理很清晰。但是在微信小程序中想要得到这样的体验就很困难——不过还是让我找到了方法——在小程序里面,是可以通过module.exports将一个 js 文件模块化,然后让别的 js 文件通过require( URL )引用的,我们可以通过这个特性来实现字符串的全局化,像这样:

这样的话,我们就可以在需要使用的时候这样:

这个其实不算踩过的坑哈,只是一个 Android 程序员的小执念而已,大家可以无视。。。

结语

最近在恶补一些前端的东西,感觉我已经快成为一个前端开发工程师了。。。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。