AngularJS(2)PhoneCat Demo Basic
Go on with the PhoneCat demo https://github.com/angular/angular-phonecat
3. Filtering Repeaters
Controller
Load the json data as before
Template
<input ng-model=“query”> This is just a input box with an identifier ‘query’
<ling-repeat="phone in phones | filter:query"]]>
http://code.angularjs.org/1.2.8/docs/api/ng.filter:filter
Data-binding, when page loads, AngularJS binds the name of the input box to a variable of the same name in the data model and keeps the 2 in sync.
AngularJS is really powerful here.
End-to-End Test
In the e2e/scenarios.js
There are 2 options to start the e2e test.
Start the Web Server, and visit http://localhost:8000/test/e2e/runner.html
Or
Start the Web Server, and run the command
>./scripts/web-server.js
>./scripts/e2e-test.sh
4. Two-way Data Binding
Template
<select ng-model=“orderProp”>
<option value=“name”>Alphabetical</option>
<option value=“age”>Newest</option>
</select>
<li ng-repeat=“phone in phones | filter: query | orderBy: orderProp”>
In the controllerJS file, we had codes like this>
$scope.orderProp = 'age’;
So it is like our default value for the select box, we are 2 way binding.
Reverse the sort like this
<option value="-age">Oldest</option>
5. XHRs & Dependency Injection
Data
Put the mock fake data in the app/phones/phones.json file.
Controller
$http is just one of several built-in angular services that handle common operations in web apps.
Services are managed by Angular’s DI subsystem.
phonecatApp.controller(‘PhoneListCtrl’, function($scope, $http) {
$http.get(‘phones/phones.json’).success(function(data) {
$scope.phones = data;
});
});
$http, this built-in object is really import to us.
$Prefix Naming Convention
Test
beforeEach(inject(function(_$httpBackend_, $rootScope, $controller) {
$httpBackend = _$httpBackend_;
$httpBackend.expectGET('phones/phones.json').
respond([{name: 'Nexus S'}, {name: 'Motorola DROID'}]);
scope = $rootScope.$new();
ctrl = $controller('PhoneListCtrl', {$scope: scope});
}));
it('should create "phones" model with 2 phones fetched from xhr', function() {
expect(scope.phones).toBeUndefined();
$httpBackend.flush();
expect(scope.phones).toEqual([{name: 'Nexus S'},
{name: 'Motorola DROID'}]);
});
6. Templating Links & Images
Data
We have id and imageUrl in the JSON String.
Template
Just normal HTML template
<li ng-repeat="phone in phones | filter:query | orderBy:orderProp" class="thumbnail">
<a href="#/phones/{{phone.id}}" class="thumb"><img ng-src="{{phone.imageUrl}}"></a>
<a href="#/phones/{{phone.id}}">{{phone.name}}</a>
<p>{{phone.snippet}}</p>
</li>
Test
input('query').enter('nexus');
element('.phones li a').click();
expect(browser().location().url()).toBe('/phones/nexus-s');
7. Routing & Multiple Views
Turn the index.html into layout template.
Application routes in Angular are declared via the $routeProvider, which is the provider of the $route service.
Multiple Views, Routing and Layout Template
It loads all the modules in app.js
var phonecatApp = angular.module('phonecatApp', [
'ngRoute',
'phonecatControllers'
]);
And we have a routing like backboneJS
when('/phones', {
templateUrl: 'partials/phone-list.html',
controller: 'PhoneListCtrl'
}).
Only defines the Controllers in controllers.js
var phonecatControllers = angular.module('phonecatControllers', []);
phonecatControllers.controller('PhoneListCtrl', ['$scope', '$http',
function($scope, $http) {
$http.get('phones/phones.json').success(function(data) {
$scope.phones = data;
});
$scope.orderProp = 'age';
}]);
phonecatControllers.controller('PhoneDetailCtrl', ['$scope', '$routeParams',
function($scope, $routeParams) {
$scope.phoneId = $routeParams.phoneId;
}]);
Layout Template
<div ng-view></div>
8. More Templating
Just add Detail controller, Detail template, Detail Data.
References:
http://code.angularjs.org/1.2.8/docs/tutorial/step_03
http://code.angularjs.org/1.2.8/docs/tutorial/step_05
- 浏览: 2551086 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
nation:
你好,在部署Mesos+Spark的运行环境时,出现一个现象, ...
Spark(4)Deal with Mesos -
sillycat:
AMAZON Relatedhttps://www.godad ...
AMAZON API Gateway(2)Client Side SSL with NGINX -
sillycat:
sudo usermod -aG docker ec2-use ...
Docker and VirtualBox(1)Set up Shared Disk for Virtual Box -
sillycat:
Every Half an Hour30 * * * * /u ...
Build Home NAS(3)Data Redundancy -
sillycat:
3 List the Cron Job I Have>c ...
Build Home NAS(3)Data Redundancy
发表评论
-
MongoDB 2019(3)Security and Auth
2019-11-16 06:48 241MongoDB 2019(3)Security and Aut ... -
Memory Leak in NodeJS
2018-12-20 06:26 735Memory Leak in NodeJS I have d ... -
Remote Desktop Client
2018-12-07 13:19 1199Remote Desktop Client There is ... -
MetaBase UI Console(2)Docker on MySQL
2018-11-29 06:58 944MetaBase UI Console(2)Docker on ... -
AWS Lambda and Serverless Timeout
2018-09-20 01:20 629AWS Lambda and Serverless Timeo ... -
2018 WebSocket(1)Introduction
2018-03-20 01:22 11092018 WebSocket(1)Introduction ... -
2018 TypeScript Update(3)Introduction Basic Grammar
2018-03-08 03:08 6092018 TypeScript Update(3)Introd ... -
2018 TypeScript Update(2)Introduction Basic Grammar - Classes and Functions
2018-03-06 05:32 5562018 TypeScript Update(2)Introd ... -
2018 TypeScript Update(1)Introduction Basic Grammar - Types and Interface
2018-03-03 01:15 6042018 TypeScript Update(1)Introd ... -
Charts and Console(6)Paging
2018-03-01 00:12 583Charts and Console(6)Paging Th ... -
Vue.JS(3)Google Login
2018-02-14 04:53 1317Vue.JS(3)Google Login I just p ... -
Vue.JS(2)Monitor Water Console - ChartJS and Axios
2018-02-14 03:17 725Vue.JS(2)Monitor Water Console ... -
Vue.JS(1)Introduction and Basic Demo
2018-02-08 06:47 615Vue.JS(1)Introduction and Basic ... -
Charts and Console(5)Validation Form
2017-10-03 05:12 810Charts and Console(5)Validation ... -
Charts and Console(4)Display and Enhancement
2017-09-20 05:39 637Charts and Console(4)Display an ... -
Charts and Console(3)Auth and Login
2017-09-13 03:45 667Charts and Console(3)Auth and L ... -
Charts and Console(2)Login and Proxy
2017-08-31 05:39 878Charts and Console(2)Login and ... -
Charts and Console(1)UI Console and RESTful Client
2017-08-29 11:02 769Charts and Console(1)UI Console ... -
Blog Project(2)Express Backend API - istanbul - mocha - bunyan
2017-06-09 00:05 484Blog Project(2)Express Backend ... -
ReactJS(5)Composition vs Inheritance
2017-06-06 05:55 1116ReactJS(5)Composition vs Inheri ...
相关推荐
angularJs2官网demo,使用方法:需要在本地安装npm,(https://nodejs.org/en/下载最新版本的nodeJs,保证node的版本高于等于v5.x.x,npm版本高于等于3.x.x),使用node -V或者npm -V检查版本。 下载文档之解压到某个目录...
2. **定义模块**:然后,使用RequireJS的define方法定义AngularJS的模块。每个模块文件都应该声明其依赖,这包括其他AngularJS模块和服务。 3. **注入服务**:在AngularJS中,我们通常会创建服务并注入到控制器或...
在"angularJs demo 各种基本用法"中,我们可以深入探讨以下几个关键概念:路由(router)、过滤器(filter)、服务(service)以及指令(diractive)。 **路由(Router)**: AngularJS的路由功能允许我们根据URL来...
**AngularJS 入门小 Demo** AngularJS 是一个强大的前端 JavaScript 框架,由 Google 维护,用于构建单页应用(Single-Page Applications, SPA)。它通过数据绑定和依赖注入等特性,极大地简化了网页开发过程。在这...
在这个"Springmvc和Angularjs交互代码Demo"中,我们可以看到如何将这两者结合使用,实现前后端的数据交换和交互。 Spring MVC在后端主要负责处理HTTP请求、业务逻辑处理以及数据访问。它通过控制器(Controller)将...
【标题】"AngularJS Demo" 是一个展示AngularJS实际应用的示例项目,它可能包含了开发者在学习或实践AngularJS框架时创建的各种组件和功能。AngularJS是Google维护的一个前端JavaScript框架,它用于构建交互式的单页...
AngularJS是前端开发流行框架,本Demo展示了表单验证的意义,及实现方法,掌握Angular基础指令,通过不同的指令元素可以拥有不同功能,并通过指令与表单合作验证,从而实现表单验证的敏捷化开发。
**AngularJS + SpringMVC 入门Demo详解** AngularJS 和 SpringMVC 是两种非常流行的开源框架,分别在前端和后端发挥着重要作用。AngularJS 是一个强大的 JavaScript 框架,用于构建单页应用程序(SPA),而 ...
angularjs的demo
在本文中,我们将深入探讨AngularJS分页的实现方法,这是一种强大的前端JavaScript框架,用于构建交互式的Web应用程序。AngularJS的分页功能是提高大型数据集加载效率的关键,它允许用户逐步加载数据,而不是一次性...
这个"angularjs ui.router嵌套路由demo"是展示如何在AngularJS项目中使用UI.Router进行多级路由配置和页面嵌套的一个实例。通过这个demo,我们可以深入理解UI.Router的工作原理和实际应用。 首先,UI.Router不同于...
### 2. 引入`ngRoute`模块 在使用`$route`之前,需要首先在项目中引入`ngRoute`模块。这通常在主模块定义时完成: ```javascript var app = angular.module('myApp', ['ngRoute']); ``` ### 3. 配置路由 接下来...
AngularJS + Bootstrap Demo项目,获取豆瓣电影数据
这个"angularjs中select2使用demo"应该是一个示例项目,展示了如何在AngularJS应用中集成和使用Select2。 首先,让我们了解AngularJS和Select2的基础知识。AngularJS是由Google维护的一个JavaScript框架,用于构建...
这个"angularjs demo"压缩包很可能是包含了一些示例项目,帮助开发者理解和学习AngularJS的核心概念和功能。 首先,AngularJS的核心特性包括数据绑定、依赖注入、指令系统、过滤器和表单处理等。数据绑定是...
2. **编写Controller**:创建一个Controller,定义一个返回JSON数据的方法,例如: ```java @RestController public class MyController { @RequestMapping(value = "/data", method = RequestMethod.GET) @...
此外,它还兼容了最新的 Angular 版本,包括 Angular 1.x 和 AngularJS 2+,为不同版本的 Angular 开发者提供了便利。 总之,AngularJS 文件上传插件 ng-file-upload 是一个强大且灵活的工具,它为开发者提供了丰富...
2. 克隆或下载angularjs-demo-master压缩包并解压。 3. 进入项目目录,安装依赖:`npm install`。 4. 使用Angular CLI启动开发服务器:`ng serve`。 5. 编辑源代码,根据项目需求调整布局、路由和服务。 6. 构建生产...
本示例以"AngularJs demo 例子(表单验证)form"为主题,结合bootstrap美化,展示了如何在AngularJS中实现表单验证。 **1. AngularJS 表单基础** 在AngularJS中,表单是由`<form>`标签定义的,可以通过`ngForm`或`...
2. **Controller**:SpringMVC的Controller类,定义了处理AngularJS请求的方法,例如处理登录、注册、获取数据等。这些方法通常返回JSON格式的数据,AngularJS可以通过Ajax请求获取并显示。 3. **AngularJS应用**:...