最近,接到了新的任務(wù),跟UI開(kāi)發(fā)有關(guān),用的是Angular JS,Express JS等技術(shù)。于是周末順便學(xué)習(xí)下新技術(shù)。
創(chuàng)新互聯(lián)專注于方山網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供方山營(yíng)銷型網(wǎng)站建設(shè),方山網(wǎng)站制作、方山網(wǎng)頁(yè)設(shè)計(jì)、方山網(wǎng)站官網(wǎng)定制、微信小程序定制開(kāi)發(fā)服務(wù),打造方山網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供方山網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。組里產(chǎn)品UI架構(gòu)如下:
其中前端,主要使用Angular JS框架,另外配合Bootstrap提供的很多控件以及JQuery,后臺(tái)主要是Express JS搭建的Web Server,Express JS配合Nginx使用非常方便。
由此在項(xiàng)目不忙的時(shí)候,自己于是有時(shí)間和興趣學(xué)習(xí)一下Angular JS與Express JS。
同時(shí)自己實(shí)現(xiàn)了一個(gè)最簡(jiǎn)單的Angular JS + Express JS的網(wǎng)站示例。
一. Angular JS
Angular JS是由谷歌員工開(kāi)發(fā),后由谷歌維護(hù)的一個(gè)項(xiàng)目,官網(wǎng)為:https://angularjs.org/。上面有詳細(xì)的文檔,可以下載最新的版本1.4和穩(wěn)定版1.3.15。
簡(jiǎn)單來(lái)講,Angular JS是一個(gè)作用在前端的Javascript框架。它的兩大特點(diǎn)是通過(guò)指令擴(kuò)展了Html,并且通過(guò)表達(dá)式綁定數(shù)據(jù)到Html。同時(shí)提供了控制器,F(xiàn)ilter過(guò)濾器,F(xiàn)actory等服務(wù)。
Angular JS因?yàn)樽饔迷谇岸?,所以可以和任何服?wù)器技術(shù)相結(jié)合,與Express JS就是很好的結(jié)合。
Angular JS的產(chǎn)生為了解決靜態(tài)網(wǎng)頁(yè)操作DOM的弊端,適用于開(kāi)發(fā)動(dòng)態(tài)Web應(yīng)用。
Angular JS的原理可通過(guò)下圖了解:
網(wǎng)上入門學(xué)習(xí)的資料也很多,這里不予贅述。但介紹一下Angular JS的幾個(gè)重要概念:
1. 控制器Controller
要?jiǎng)討B(tài)操作網(wǎng)頁(yè)中的數(shù)據(jù),我們可以針對(duì)Html頁(yè)面編寫(xiě)控制器,控制器本質(zhì)是一個(gè)Javascript方法,例如我們可以針對(duì)每一個(gè)HTML頁(yè)面,寫(xiě)一個(gè)對(duì)應(yīng)的Javascript方法做控制器,來(lái)控制頁(yè)面中的數(shù)據(jù)。如下:
index.html
<!doctype html> <html ng-app="myApp"> <head> <script src="lib/angular-1.3.15/angular.js"></script> <script src="lib/angular-1.3.15/angular-route.js"></script> <script src="js/controller.js"></script> <script src="js/angularMainApp.js"></script> </head> <body ng-view> <div> <p>Hello {{name}}</p> </div> </body> </html>
這是一個(gè)Angular JS控制編寫(xiě)的頁(yè)面,指定Angular JS的app為myApp,注意看其中的表達(dá)式,{{name}},name就是一個(gè)動(dòng)態(tài)變量。那name的值從何而來(lái)?就是要在對(duì)應(yīng)的控制器中給name賦值,從來(lái)用戶訪問(wèn)index.html頁(yè)面時(shí)可看到name真實(shí)的值。
controller.js
// Declare angular JS level module wich depends on filters, and services var myControllers = angular.module(\'myControllers\', []); // controller myControllers.controller(\'indexContrl\', [\'$scope\', function ($scope) { $scope.name = "Kevin"; }]);
在controller.js中,我們定義了一個(gè)indexContrl的控制器,這個(gè)控制器來(lái)給index.html中的name賦值。當(dāng)然我覺(jué)得真實(shí)開(kāi)發(fā)中,控制器的代碼肯定會(huì)很多,建議每一個(gè)像indexContrl的控制器單獨(dú)放在一個(gè)JS文件中,這樣規(guī)范,好維護(hù)。
那有一個(gè)問(wèn)題,indexContrl如何與index.html關(guān)聯(lián)起來(lái)?Angular JS怎么知道我們要用indexContrl來(lái)控制index.html?
這里有兩種方式,一是在index.html中直接指定,
<div ng-controller="indexContrl"> <p>Hello {{name}}</p> </div>但這種方式,對(duì)于大型網(wǎng)站來(lái)說(shuō),太麻煩。建議使用另外一種方式,就是用Angular JS的另一個(gè)Module ng-route,做路由控制,針對(duì)不同的路徑,在同一個(gè)文件中定義好各自的控制器。如下:
文章名稱:使用AngularJS+ExpressJS入門搭建網(wǎng)站
網(wǎng)頁(yè)URL:http://www.rwnh.cn/article24/cpocje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、微信公眾號(hào)、服務(wù)器托管、小程序開(kāi)發(fā)、App開(kāi)發(fā)、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)