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的值了。这一段写的有点扯
Angular基础开始的更多相关文章
- 第214天:Angular 基础概念
一.Angular 简介 1. 什么是 AngularJS - 一款非常优秀的前端高级 JS 框架 - 最早由 Misko Hevery 等人创建 - 2009 年被 Google 公式收购,用于其多 ...
- Angular基础---->AngularJS的使用(一)
AngularJS主要用于构建单页面的Web应用.它通过增加开发人员和常见Web应用开发任务之间的抽象级别,使构建交互式的现代Web应用变得更加简单.今天,我们就开始Angular环境的搭建和第一个实 ...
- angular 基础练习
<!DOCTYPE HTML> <html> <head> <title> 测试页 </title> <meta charset=&q ...
- Angular基础(三) TypeScript
一.模仿Reddit a) 运行ng new –ng4angular-reddit创建应用,从随书代码中复制样式文件,新建组件app-root,代码为: 界面可以看到了: b) 对于界面输入的数据,获 ...
- Angular基础(二) 组件的使用
一.简单操作 a) 使用Angular CLI可以快速创建项目框架,先运行 $ npm install –g @angular/cli@1.0.0安装CLI,为CLI的位置设置环境变量,然后就可以 ...
- angular基础入门
第一章 AngularJs入门 AngularJS是一款由Google公司开发维护的前端框架,其克服了HTML在构建应用上的诸多不足,从而降低了开发成本提升了开发效率. 1 特点 AngularJS与 ...
- Angular 基础入门
简介 什么是AngularJS 一个功能非常完备的前端框架,通过增强HTML的方式提供一种便捷开发Web应用程序的方式 其核心特点就是几乎无任何DOM操作,让开发人员的精力和时间全部集中于业务 MVC ...
- Angular基础教程:表达式日期格式化[转]
本地化日期格式化: ({{ today | date:'medium' }})Nov 24, 2015 2:19:24 PM ({{ today | date:'short' }})11/24/15 ...
- Angular基础知识
AngularJS 是一个 JavaScript 框架.它可通过 <script> 标签添加到 HTML 页面. AngularJS 通过 ng-directives 扩展了 HTML. ...
- Angular基础(二)
双向数据 利用angular把input框里面的值和h3的值绑定在一起.在input里输入内容,内容会在h3标签里显示出来. 具体效果请看下面代码: <!DOCTYPE html> ...
随机推荐
- springMVC入门-02
本节会在上节基础上讨论springMVC如何传值的问题. 在添加dispatcherServlet之后,拦截器会将url中的参数拦截下来,使之可以在controller中使用.以下代码就是在前台输入u ...
- C#自定义控件的创建
1.创建自定义控件 选择[经典桌面]——[窗体控件库] 2.添加控件,组合成一个新的控件 自定义控件功能:打开一张图片,将图片展示在pictureBox控件中,并将图片的名称.大小.尺寸显示出来 控件 ...
- SQL SERVER 使用ESCAPE转义
使用SQL语句查询是开发中常做的事,在实际的情况中,可能会遇到,查询包含某个关键词的所有行,而这个关键词正好也是SQL SERVER的关键词. 下面有一张表Member,有如下的数据: 假如需要查询名 ...
- Linux系统清除多余的账号
清除多余的账号 注释掉/etc/passwd文件中nologin的行 grep 'nologin' /etc/passwd 注: 目前暂没想到用命令行替换,后面再想想
- controller断点进入失败:包路径问题
controller 接受前端参数的方法(前端要有传值给controller的方法,后台要有接收值得方法) 1.@RequestParam 接收表单参数 2.@RequestBody 接收json字符 ...
- Spring Boot Mybatis-Plus
Mybatis-Plus 是对 Mybatis-Plus 的一些扩充. 在 Spring Boot 中进行集成的时候其实基本上和 mybatis 是一致的. 在你的配置文件中.配置 你的 entity ...
- 前段js初学总结
常用的js整理 confirm("此次修改操作会清空所有基础数据!!!您确定要修改吗?") <a onclick="delBasisData('${data['_i ...
- MySQL开发规范和原则大全
一. 表设计 库名.表名.字段名必须使用小写字母,“_”分割. 库名.表名.字段名必须不超过12个字符. 库名.表名.字段名见名知意,建议使用名词而不是动词. 建议使用InnoDB存储引擎. 存储精确 ...
- 写了一个web使用向导的小插件
运行效果: 引入插件: <link rel="stylesheet" href="ez-guide.css"> <script src=&qu ...
- 【转】PHP面试题总结
PHP面试总结 PHP基础 1:变量的传值与引用. 2:变量的类型转换和判断类型方法. 3:php运算符优先级,一般是写出运算符的运算结果. 4:PHP中函数传参,闭包,判断输出的echo,print ...