1. 程式人生 > >AngularJS-demo - 常用命令、內建服務、自定義服務、繼承

AngularJS-demo - 常用命令、內建服務、自定義服務、繼承

AngularJS-demo - 常用命令、內建服務、自定義服務、繼承

常用命令: ng-app、ng-controller、ng-init、ng-repeat、ng-click

內建服務: $scope、$http

自定義服務: myService

繼承: myController 繼承 baseController

表示式 {{ }}

例項:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>AngularJS-demo -常用命令、內建服務、自定義服務、繼承</title>
		
	</head>
	<body ng-app="myApp" ng-controller="myController" ng-init="findList(1)">
	
	<h2>AngularJS-demo -常用命令、內建服務、自定義服務、繼承</h2>
	
	<h3>常用命令: ng-app、ng-controller、ng-init、ng-repeat、ng-click</h3>
	<h3>內建服務: $scope、$http</h3>
	<h3>自定義服務: myService</h3>
	<h3>繼承: myController 繼承 baseController</h3>
	
	{{list}}
	
	<br /><br />
	
	<button ng-click="Alert()">ng-click</button>
	<table border="1px;" style="width:500px;">
		<tr>
			<th>姓名</th>
			<th>語文</th>
			<th>數學</th>
		</tr>
		<tr ng-repeat="item in list">
			<td>{{item.name}}</td>
			<td>{{item.yuwen}}</td>
			<td>{{item.shuxue}}</td>
		</tr>
	</table>
	
	<script type="text/javascript" src="js/jquery.min.js" ></script>
	<script type="text/javascript" src="js/angularjs/angular.min.js" ></script>
    <script type="text/javascript" src="js/base.js"></script>
    <script type="text/javascript" src="js/baseController.js"></script>
    <script type="text/javascript" src="js/myController.js"></script>
    <script type="text/javascript" src="js/myService.js"></script>
    
	</body>

</html>

data.json

[
	{"name": "luo", "yuwen": 100, "shuxue": 90},
	{"name": "lei", "yuwen": 90, "shuxue": 96},
	{"name": "xing", "yuwen": 100, "shuxue": 95}
]

base.js

//基礎公用程式碼
//建立模組
var app=angular.module("myApp", []);

baseController.js

app.controller("baseController", function($scope){
	
	//baseController 把共用的controller 提出來,繼承他的都會有這些方法
	
	//重新整理頁面,angular 會不停更新呼叫,所以延遲
	$scope.Reload=function(){
		setTimeout(function(){
			location.reload();
		}, 3000);	
	}
	
});

myController.js

//建立控制器 controller  $scope就是控制層與檢視層之間交換的聯絡
app.controller("myController", function($scope, $controller, myService){
	
	//繼承 baseController 偽繼承
	//{$scope : $scope} 把baseController的$scope與當前的相等
	$controller('baseController', {$scope : $scope});

	$scope.findList=function(type){
		myService.findData(type).success(
			function(response){
				$scope.list =  response;
				$scope.Reload();
			});
	}

	$scope.Alert=function(){
		alert("ng-click");
	}
});

myService.js

//自定義服務service
app.service("myService", function($http){
	//把相同的部分url抽出來,方便後期維護
	this.findData=function(type){
		return $http.get("data.json?type="+type);
	}
});