1声邦、首先了解了子路由ui-router
NBA這個(gè)項(xiàng)目用都了ui-router,使單頁(yè)應(yīng)用更加的方便编丘,子路由即嵌套路由挽牢,通過“ . ”來實(shí)現(xiàn)谱煤,以后需要再添加什么頁(yè)面,直接添加就可以了禽拔,上代碼:
? ? ? ? ? ? ? ? ? ? 這個(gè)是主:
? ? ? ? ? ? ? 在reword里如果需要再添加新的頁(yè)面刘离,就應(yīng)該這樣做,ui-router發(fā)揮了很好的作用睹栖。
? ? ? ? ? ? ? 此時(shí)硫惕,在aword里,就有打開一個(gè)叫做 ?turnplate.html ?的頁(yè)面(在這里說明一下野来,進(jìn)入turnplate.html的入口 恼除,要在 aword 的 index.html 里添加入口,例如:
只是添加了一個(gè)入口曼氛,給綁定了一個(gè)事件 ng-click
2豁辉、用構(gòu)建工廠的方法來創(chuàng)建服務(wù)
在這里介紹一下,使用服務(wù)的方法搪锣,我們定義一個(gè)服務(wù)秋忙,然后分配方法,還注入已經(jīng)可用的服務(wù)构舟。
上代碼:
這里有需要注意的點(diǎn):
? ? ? ? ? ? ?1灰追、 ? GET 和 ?POST ?的方法堵幽,如果是 get 話,參數(shù)就是params,如果是 post 的話弹澎,參數(shù)是 data
? ? ? ? ? ? 2朴下、服務(wù)的名字遵循駝峰式規(guī)則,起名字的時(shí)候苦蒿,用英文殴胧,這樣不會(huì)顯得自己很 low
要獲取大轉(zhuǎn)盤的數(shù)據(jù)信息:(這個(gè)根據(jù)后端給你的接口來寫,看需要什么)
在這里注意:
? ? ? ? ? ? ? 那個(gè)id佩迟,后臺(tái)給的什么就是什么团滥,這里是id啦
? ? ? ? ? ? ? ?還有因?yàn)檎?qǐng)求方式不同,寫法不一樣报强,要特別注意灸姊。
3、接下來最重要的就是寫JS
? ? ? ? ?在頭部要定義模塊:
? ? ? ? ? ?例如這里:var app = angular.module('ttnba.award',['ionic']);
? ? ? ? ? ?開始寫controller: ?(這里注意的一點(diǎn)就是controller的名字秉溉,這個(gè)名字要和router里的一致)
上代碼:
? ? ? ?app.controller('TurnplateController'['$scope','$state','WheelService'.......,function($scope','$state','WheelService'.......){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 在這里邊寫js代碼
? ? ? ? ? ? }
]);
4力惯、遇到的問題一:
? ? ? 看了他之前寫的代碼,返回上一頁(yè)召嘶,他寫了一個(gè)goback()函數(shù)父晶,然后就很簡(jiǎn)單的實(shí)現(xiàn)了返回上一頁(yè),用的時(shí)候直接拿來就可以弄跌〖缀龋看一下他寫的goback()函數(shù)吧。
問題二:
獲得數(shù)據(jù)的時(shí)候要寫一行很惡心的代碼铛只,特別的惡心俺猿,很惡心。請(qǐng)看:
WheelService.getWheelInfo(wheel_id).then(function(data){
})
另外要注意格仲,數(shù)據(jù)的獲取,爭(zhēng)取寫一遍诵冒,別重復(fù)凯肋,這樣提高代碼的復(fù)用性。例如:
一個(gè)接口里有三個(gè)對(duì)象汽馋,就可以寫三個(gè)侮东,至于那三個(gè)里邊是什么就再寫什么了,上代碼:
問題三:
? ? ? ? ? ? ? ?旋轉(zhuǎn)問題(趙翔說這里是具有編程思維)
需要先初始化豹芯,另外注意悄雅,angular里邊寫函數(shù)的話,就用#scope.函數(shù)名 = function(){}
問題四:
? ? ? ? ? ? 防止連續(xù)點(diǎn)擊事件
? ? ? ? 我是這樣想的铁蹈,就是判斷轉(zhuǎn)盤是否在旋轉(zhuǎn)宽闲,如果已經(jīng)在旋轉(zhuǎn)了就給他添加不可點(diǎn)擊的事件,就是禁止點(diǎn)擊,結(jié)果證明容诬,趙翔說我的想法是正確的娩梨,但是實(shí)現(xiàn)代碼的時(shí)候有點(diǎn)困難,他就教我了览徒。
這里邊在最外邊用 if 判斷狈定,如果可以點(diǎn)擊,就執(zhí)行下邊代碼
同時(shí)給一個(gè)延遲
問題五:
點(diǎn)擊物品有彈框习蓬,之前他做過好多的彈框纽什,一個(gè)叫做popup的函數(shù),直接添加頁(yè)面就可以了躲叼。
這個(gè)問題很簡(jiǎn)單芦缰,但是我為什么要拿出來記一下呢,原因是:商品詳情只有有陰影的可以點(diǎn)擊押赊,所以根據(jù)那個(gè)type值饺藤,做判斷,就在最外層寫個(gè)if判斷就可以流礁。
問題六:
獲獎(jiǎng)名單的滾動(dòng)效果涕俗,用的是<ion-scroll></ion-scrolol>,這是ionic里的東西,寫的時(shí)候神帅,無(wú)論是縱向滾動(dòng)或者橫向滾動(dòng)再姑,都要控制好寬度和高度,這點(diǎn)很重要找御,在這里跌倒了一次元镀,以后就要記住霎桅!
最后的收獲:
? ? ? ? ? angular有自己的特性栖疑,一般的樣式都寫在了行內(nèi),好多都是用指令來完成的滔驶。以后的圖片要專門建一個(gè)文件夾遇革。