data.simulate.js? 模擬數(shù)據(jù)頁
模擬數(shù)據(jù)
grades.wxmll:主頁面
將catchtap跳轉(zhuǎn)事件注冊到view組件上(catchtap="onDetailTap")辑畦,自定義組件的屬性,獲取到模擬數(shù)據(jù)data.simulate.js的postId(data-postId="list.postId")
grades.js 主頁面
在grades.js里接收grades.wxml 傳過來的postid的值匀奏,并通過navigateTo(跳轉(zhuǎn)函數(shù))發(fā)送給grades_detail.wxml頁面
event事件對象是由MINA框架在調(diào)用onDetailTap函數(shù)時傳遞的參數(shù)(方法)
在event事件對象中换团,有一個currentTarget代表事件綁定的當(dāng)前組件(postId0~9的view)
重點(diǎn)是dataset對象,dataset對象里包含當(dāng)前組件中所有屬性名以data,開頭的自定義屬性值.因為的view上綁定了data-post-id,所以通過dataset.postid將可以拿到當(dāng)前組件的postId(拿到postId的編號)狐援。
組件自定義屬性名有以下規(guī)則:
必須以data-開頭
多個單詞由連字符“-”鏈接
單詞中最好不要有大寫字母询张,如果有大寫字母倔监,除單詞第一個字母外销睁,其余大寫字母將被轉(zhuǎn)化成小寫
在js中獲取自定義屬性值時,多個單詞將被轉(zhuǎn)化駝峰命名
在獲取到postId后诵姜,我們將postId附加在導(dǎo)航Url的query參數(shù)中汽煮,發(fā)送到grades_detail子頁面:
wx.navigateTo({
? ? ? url: '../grades/grades_detail/grades_detail?id='+postTest,
? ? })
grades_detail.js子頁面:
子頁面也需要引入 本地模擬的數(shù)據(jù)文件
接收post主頁面?zhèn)鬟f的參數(shù)方法是,通過子頁面onLoad函數(shù)里的options參數(shù)在頁面加載時獲取傳遞過來的值棚唆。
postsData.postlist 是模擬的本地數(shù)據(jù)列表暇赤,是一個對象,我們需要的是把列表中的數(shù)據(jù)傳遞出去宵凌,所以取的這對象里的是數(shù)組中的一個[postId]
使用this.setData綁定該數(shù)據(jù)鞋囊,并賦值給post