微信小程序 基础操作(边做边学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位置。

 

posted @ 2017-11-01 16:36  艾路  阅读(573)  评论(0编辑  收藏  举报