微信小程序 基础操作(边做边学2)
二级页面在app.json文件中应该添加在一级页面下。添加在pages数组底部。就会报错: Invoking Page() in async task.
选择节点,页面滚动到目标位置。在小程序中实现锚点定位需要使用,小程序的两个方法:
var bindId = event.currentTarget.dataset.bindindex; var query = wx.createSelectorQuery() query.select('#scrollView' + bindId).boundingClientRect() query.exec(function (res) { wx.pageScrollTo({ //小程序滚动程序 scrollTop: res[0].top //距离现在定位的距离 }) })
需要获取定位目标的对象实例。获取目标距离当前定位的距离。使用pageScrollTo,滚动定位到目标位置。上面少段代码。需要把上次的滚动位置保存下来。每次滚动前,将新获得的位置与上次的位置相加。
设置全局变量:
在app.js中设置全局变量,在其他页面可以通过公共方法getApp()获取全局实例。然后获取全局变量。其实是常量。
设置全局公共方法:我们可以创建公共的js文件。一般会创建在utils 文件夹内。然后在引用页面通过require获取实例。比如我们创建一个公共的http方法:
var API_URL = 'https://test1.t.com' function request(method, requestHandler) { var params = requestHandler.params; var url = requestHandler.url; wx.request({ url: API_URL + url, data: params, header: { 'content-type': 'application/x-www-form-urlencoded', }, method: method, success: function (res) { if (res.data.datas.error) { alert(res.data.datas.error); } else { requestHandler.success(res.data) } }, fail: function (res) { alert(res.fail) }, complete: function (res) { }, }) } function GET(requestHandler) { request('GET', requestHandler) } function POST(requestHandler) { request('POST', requestHandler) } module.exports = { GET: GET, POST: POST }
在引用页面,调用实例方法,传入对应参数即可。
引用公共wxml文件:
wxml提供两种文件引用方式import和include.
import 可以在该文件中引用目标文件定义的template:
<tempalte name="item"> <text>{{text}}</text> </template> // another wxml <import src="item.wxml"> <template is="item" data="{{text:'test'}}" />
import有作用域的概念,即只会Import目标文件中定义的template,而不会import目标文件import的template。(我的附庸的附庸不是我的附庸)
include可以将目标文件除了<template/>的整个代码引用,相当于拷贝到include位置。