Angular基础开始

这个我是想用Angular写一个简单的WebApp,这个是一个简简单单路由:

公共模板--index.html:

<!DOCTYPE html>
<html ng-app=‘myApp‘>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title>首页</title>
    <link rel="stylesheet" href="css/app.css" media="all" />
    <script src="js/angular.js"></script>
    <script src="js/angular-route.js" type="text/javascript" charset="utf-8"></script>
    <script src="js/app.js"></script>
    <script src="js/controller/controller.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
	<header>松鼠闹IT</header>
	<div ng-view class="container"></div>
	<footer>
		<a href=‘#/‘>首页</a>
		<a href=‘#/list‘>列表</a>
		<a href="#/detail">详情</a>
		<a href="#/demo">演示</a>
	</footer>
</body>
</html>

CSS

html,body,h1,h2,h3,h4,h5,h6,ul,dd{padding: 0;margin: 0;}
html{font-size: 62.6%;}
html,body{height: 100%;}
a{text-decoration: none;}
header,footer{box-sizing:border-box;z-index: 9999;}
header{font-size: 2.0rem;text-align: center;border-bottom: 1px solid #ccc;padding: 15px 0;position: absolute;top: 0;left: 0;width: 100%;}
footer{position: absolute;width: 100%;bottom: 0;left: 0;display: -webkit-box;font-size: 1.4rem;border-top: 1px solid #ccc;}
footer a{display: block;-webkit-box-flex: 1;text-align: center;padding: 20px 0;border-right: 1px solid #ccc;}
footer a:last-of-type{border-right: none;}

.container{position: absolute;top:54px;left: 0;bottom: 57px;width: 100%;overflow-y: auto;}

路由:

var myApp = angular.module(‘myApp‘,[‘ngRoute‘]);
myApp.config(function($routeProvider){
	$routeProvider.
	when(‘/‘,{controller:indexController,templateUrl:‘views/index.html‘}).
	when("/list",{controller:listController,templateUrl:‘views/list.html‘}).
	when("/detail/:id",{controller:detailController,templateUrl:‘views/detail.html‘}).
	when("/demo",{controller:demoController,templateUrl:"views/demoList.html"})
});

控制器:

var cityCode = [{"province":"北京","city":[{"cityName":"北京","code":"101010100"},{"cityName":"朝阳","code":"101010300"},{"cityName":"顺义","code":"101010400"},{"cityName":"怀柔","code":"101010500"},{"cityName":"通州","code":"101010600"},{"cityName":"昌平","code":"101010700"},{"cityName":"延庆","code":"101010800"},{"cityName":"丰台","code":"101010900"},{"cityName":"石景山","code":"101011000"},{"cityName":"大兴","code":"101011100"},{"cityName":"房山","code":"101011200"},{"cityName":"密云","code":"101011300"},{"cityName":"门头沟","code":"101011400"},{"cityName":"平谷","code":"101011500"},{"cityName":"八达岭","code":"101011600"},{"cityName":"佛爷顶","code":"101011700"},{"cityName":"汤河口","code":"101011800"},{"cityName":"密云上甸子","code":"101011900"},{"cityName":"斋堂","code":"101012000"},{"cityName":"霞云岭","code":"101012100"},{"cityName":"北京城区","code":"101012200"},{"cityName":"海淀","code":"101010200"}]}];

function indexController($scope){
	var user = {
		name:"松鼠闹IT",
		age : 24
	}
	$scope.user = user;
}

function listController($scope){
	$scope.cityCode = cityCode;
}

function detailController($scope,$routeParams,$http){
	$scope.show=true;
	$http({
		url:‘http://api.36wu.com/Weather/GetWeather?district=‘+$routeParams.id+‘&authkey=eb1983f443d94a78a7925222873a7722‘,
		method:‘get‘,
		dataType:‘json‘
	}).success(function(data){
		var status = parseInt(data.status,10);
		if(status === 200){
			$scope.detail = data.data;
			$scope.show=false;
		}
	}).error(function(data){
		console.log("从无");
	});
}

var demos = [
	{title:‘translation-transform‘},
	{title:‘1‘},
];

function demoController($scope){
	$scope.demos = demos;
}

上面的代码如果复制出来的话,啥都不显示,需要你创建一个views文件夹,里面存放“index.html”、“list.html”、“detail.html”、“demo.html”四个页面,四个页面对应的就是底部的四个链接,这四个页面也是四个不同的内容。

说说基本步骤:

1、加载angular.js

2、在模板的html标签里面加上"ng-app",也可以这样写"ng-app=‘myApp‘"后面的属性值随便写,但是如果写了,就必须在下面这样定义一遍

<script>
 var myApp = angular.module("myApp",[]);
</script>

如果不定义的话,就会报错,如果没有属性值,就不需要定义了

3、创建控制器

控制器的单词就是:controller,所以看到这个单词就表示我们看到了控制器。控制器有两种创建方式:

第一种:

<script>
var data = {titie:"松鼠闹IT"};
function myAppController($scope){
  $scope.data = data;
}
</script> 

第二种:

<script>
var data = {titie:"松鼠闹IT"};
myApp.controller("myAppController",function($scope){
  $scope.data = data;
});
</script>

控制器控制的是哪里呢?

<div ng-controller="myAppController">
  <h1>{{data.title}}<h1>
</div>

在一对闭合的标签中加上“ng-controller=’myAppController‘”,在这对闭合标签中的内容以及子元素就受这个控制器管理了。在上面,我们看到了一个很有趣的东西{{data.title}},恩,看上去很屌的样子,其实一眼我们也可以看出来是啥意思,就是获取data.title的值,那这个值从哪里来呢?这里我们就要简单说说Angular中的另外一个特性:依赖注入,其实我也不懂这个概念

在“myAppController”控制器中,我们看到function中有一个参数$scope,这个参数是干啥的呢?就是来进行数据绑定的。上面"$scope.data = data;"就是将上面的data对象赋值给$scope上的data属性,当然这个data属性是我们自定义的。然后在angular会在模板中找到定义了"myAppController"的闭合标签,在这对闭合标签中产生一个上下文,在这个上下文中,获取到的就是data属性,我们就可以获取到data.title的值了。这一段写的有点扯

时间: 2024-10-06 00:16:25

Angular基础开始的相关文章

angular基础

常用的设计原则和设计模式 1.设计原则(明确)① YANGI(You aren't gonna need it) 不写不需要的代码②KISS(Keep it simple and stupid) 代码越简单越好③DRY(Don't Repeat Yourself)封装代码④高内聚低耦合内聚:一个模块内部的不同部分之间的关系耦合:不同模块/组件的关系⑤SRP(single responsibility principle) 单一责任原则⑥OCP(open closed principle) 开闭原

【Angular】Angular基础(3)

Angular基础(3) -------Angular Bootstrap 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <link rel="stylesheet" href="//apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.min.css"> 6 &

第214天:Angular 基础概念

一.Angular 简介 1. 什么是 AngularJS - 一款非常优秀的前端高级 JS 框架 - 最早由 Misko Hevery 等人创建 - 2009 年被 Google 公式收购,用于其多款产品 - 目前有一个全职的开发团队继续开发和维护这个库 - 有了这一类框架就可以轻松构建 SPA 应用程序 - 轻松构建 SPA(单一页面应用程序) - 单一页面应用程序: + 只有一个页面(整个应用的一个载体) + 内容全部是由AJAX方式呈现出啦的 - 其核心就是通过指令扩展了 HTML,通过

Angular基础(二) 组件的使用

? 一.简单操作 a) 使用Angular CLI可以快速创建项目框架,先运行 $ npm install –g @angular/[email protected]安装CLI,为CLI的位置设置环境变量,然后就可以全局使用ng命令了. 执行ng new –ng4 angular-hello-world可以创建Angular4项目,会自动生成基础的文件夹和文件,还会自动进行npm i操作,下载并安装所需的依赖. 然后执行ng serve就可以编译并启动这个程序了,但ng并不会自动打开浏览器. b

Angular基础(三) TypeScript

一.模仿Reddit a) 运行ng new –ng4angular-reddit创建应用,从随书代码中复制样式文件,新建组件app-root,代码为: 界面可以看到了: b) 对于界面输入的数据,获取的方式有点特别,使用了#newlink这样的语法,newlink是一个对象,现在代表就是所在的input这个DOM元素. 将对象作为参数传递给addArticle方法,在对应的ts代码中,可以获取newlink.value.newlink是HTMLInputElement类型. c)关于参数的绑定

angular 基础练习

<!DOCTYPE HTML> <html> <head> <title> 测试页 </title> <meta charset="utf-8"> </head> <body ng-app="myApp"> <div ng-controller="query"> <input id="input" ng-model

Angular基础(六) DI

  一.依赖注入 a) 如果模块A需要依赖模块B,通常的做法是在A中导入B,import{B} from 'B',但有一些场合需要解除这种直接依赖,比如单元测试时需要mock一个B对象.还有时要创建B的单例或者用工厂模式生成B,这时适合使用依赖注入(Dependency Injection)的方式来解除对B的直接依赖. b) Angular的依赖注入框架包含三部分,Provider.Injector.Dependency,三者的关系为: Provider的作用是建立类与其依赖项之间的映射(map

Angular基础(二)

双向数据 利用angular把input框里面的值和h3的值绑定在一起.在input里输入内容,内容会在h3标签里显示出来. 具体效果请看下面代码:   <!DOCTYPE html>   <html>   <head>   <meta charset="UTF-8">   <title></title>   </head>   <body ng-app="app">  

Angular 基础入门

简介 什么是AngularJS 一个功能非常完备的前端框架,通过增强HTML的方式提供一种便捷开发Web应用程序的方式 其核心特点就是几乎无任何DOM操作,让开发人员的精力和时间全部集中于业务 MVC的特性增强了代码的结构和可维护性,应对需求的变化做出最小的改动 为什么使用AngularJS 更少的代码实现更强劲的功能 提供了很多在传统后端开发中大量使用的思想和方式,提高前台代码的结构和可维护性 使用AnuglarJS的流程 在HTML中引入Angular.js文件 在自己的代码中定义一个Ang

Angular基础(五) 内建指令和表单

? Angular提供了一些内建的指令,可以作为属性添加给HTML元素,以动态控制其行为. 一.内建指令 a) *ngIf,可以根据条件来显示或隐藏HTML元素. <div *ngIf='a>b'>show</div>,只有在a>b的时候才会显示这个div. b)*ngSwitchCase,可以根据不同的条件,控制对应的HTML元素的显示. <div[ngSwitch]='myVar'> <div *ngSwitchCase="'a'&quo