`
sillycat
  • 浏览: 2551048 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

AngularJS(3)PhoneCat Demo Advance

    博客分类:
  • UI
 
阅读更多

AngularJS(3)PhoneCat Demo Advance

Go on with the PhoneCat demo https://github.com/angular/angular-phonecat  

9. Custom Filter
…snip…

10. Event Handlers
Controller
Define a property in $scope to hold the image URL.
function($scope, $routeParams, $http) {
    $http.get('phones/' + $routeParams.phoneId + '.json').success(function(data) {
      $scope.phone = data;
      $scope.mainImageUrl = data.images[0]; //set the page load default image first one
    });

    $scope.setImage = function(imageUrl) {
        $scope.mainImageUrl = imageUrl;
    }

  }]); 

Provide a function in $scope to change the value of image URL.

Template
The most magic part is directly calling the $scope function in ng-click
<img ng-src="{{img}}" ng-click="setImage(img)"> 

Test
element('.phone-thumbs li:nth-child(3) img').click();
        expect(element('img.phone').attr('src')).toBe('img/phones/nexus-s.2.jpg’);

Click on the sub element of li and verify the IMG src value.

11. REST and Custom Services
Template
Import the REST client 
  <script src="js/controllers.js"></script>
And put all my model codes in services.js
  <script src="js/services.js"></script> 

Service
Here is how we build the service layer, we use factory to create a service instance.

var phonecatServices = angular.module('phonecatServices', ['ngResource']);

phonecatServices.factory('Phone', ['$resource',
  function($resource){
    return $resource('phones/:phoneId.json', {}, {
      query: {method:'GET', params:{phoneId:'phones'}, isArray:true}
    });
  }]); 

Controller
Leave the lower layer $http, deal with the service object Phone, fetch all the data from there.

$resource is higher than $http, and we use $resource to build the REST client, we create service layer here.

12. Applying Animations
It is powerful and great, but I will not use it right now.

More examples are here 
http://code.angularjs.org/1.2.8/docs/cookbook/index

Guide book is here
http://code.angularjs.org/1.2.8/docs/guide/index

References:
http://code.angularjs.org/1.2.8/docs/tutorial/step_09
http://code.angularjs.org/1.2.8/docs/tutorial/step_11

http://code.angularjs.org/1.2.8/docs/guide/index
http://code.angularjs.org/1.2.8/docs/cookbook/index


 

分享到:
评论

相关推荐

    angularjs_requirejs demo

    3. **注入服务**:在AngularJS中,我们通常会创建服务并注入到控制器或其他组件中。在RequireJS环境中,这些服务可以通过模块导出和导入来管理。 4. **路由配置**:如果涉及到uirouter,需要在AngularJS的模块中...

    angularJs demo 各种基本用法

    在"angularJs demo 各种基本用法"中,我们可以深入探讨以下几个关键概念:路由(router)、过滤器(filter)、服务(service)以及指令(diractive)。 **路由(Router)**: AngularJS的路由功能允许我们根据URL来...

    AngularJS入门小Demo

    3. **控制器**:在 AngularJS 中,控制器是 JavaScript 对象,它们定义了应用的业务逻辑。`ng-controller` 指令用于指定控制器,例如 `ng-controller="MyCtrl"`,其中 `MyCtrl` 是一个 JavaScript 函数,定义在你的...

    AngularJs2 官网demo

    angularJs2官网demo,使用方法:需要在本地安装npm,(https://nodejs.org/en/下载最新版本的nodeJs,保证node的版本高于等于v5.x.x,npm版本高于等于3.x.x),使用node -V或者npm -V检查版本。 下载文档之解压到某个目录...

    Springmvc和Angularjs交互代码Demo

    在这个"Springmvc和Angularjs交互代码Demo"中,我们可以看到如何将这两者结合使用,实现前后端的数据交换和交互。 Spring MVC在后端主要负责处理HTTP请求、业务逻辑处理以及数据访问。它通过控制器(Controller)将...

    angularjsdemo

    3. **angular-1.5.8**:这是AngularJS的一个特定版本,说明项目使用的是AngularJS 1.x系列,而不是后来的Angular 2+版本。AngularJS 1.5.8是稳定版本,具有许多修复和改进,适用于开发和维护现有项目。 4. **...

    angularjs表单验证Demo

    AngularJS是前端开发流行框架,本Demo展示了表单验证的意义,及实现方法,掌握Angular基础指令,通过不同的指令元素可以拥有不同功能,并通过指令与表单合作验证,从而实现表单验证的敏捷化开发。

    AngularJS+springmvc的demo

    **AngularJS + SpringMVC 入门Demo详解** AngularJS 和 SpringMVC 是两种非常流行的开源框架,分别在前端和后端发挥着重要作用。AngularJS 是一个强大的 JavaScript 框架,用于构建单页应用程序(SPA),而 ...

    angularjs ui.router嵌套路由demo

    这个"angularjs ui.router嵌套路由demo"是展示如何在AngularJS项目中使用UI.Router进行多级路由配置和页面嵌套的一个实例。通过这个demo,我们可以深入理解UI.Router的工作原理和实际应用。 首先,UI.Router不同于...

    angularjs的demo

    angularjs的demo

    angularJS route路由demo

    ### 3. 配置路由 接下来,我们需要配置路由。这通常在主模块的配置阶段完成,通过调用`$routeProvider`的`when`方法定义路由规则: ```javascript app.config(function($routeProvider) { $routeProvider .when...

    AngularJS_1..5.0_Demo

    AngularJS + Bootstrap Demo项目,获取豆瓣电影数据

    angularjs分页实例

    在本文中,我们将深入探讨AngularJS分页的实现方法,这是一种强大的前端JavaScript框架,用于构建交互式的Web应用程序。AngularJS的分页功能是提高大型数据集加载效率的关键,它允许用户逐步加载数据,而不是一次性...

    angularjs demo

    这个"angularjs demo"压缩包很可能是包含了一些示例项目,帮助开发者理解和学习AngularJS的核心概念和功能。 首先,AngularJS的核心特性包括数据绑定、依赖注入、指令系统、过滤器和表单处理等。数据绑定是...

    springmvc+angularjs springmvc 整合angularjs demo

    3. **配置视图解析**:由于AngularJS运行在前端,所以SpringMVC不需要传统的视图解析,但仍然需要处理静态资源(如:AngularJS的JS文件和HTML模板)。 4. **创建AngularJS应用**:在前端,创建一个AngularJS应用,...

    angularjs文件上传插件

    3. **上传进度**:实时更新上传进度,可以显示百分比或进度条,提升用户体验。 4. **取消上传**:在上传过程中,用户可以随时取消上传任务,避免因网络问题或错误导致资源浪费。 5. **多文件上传**:支持一次选择多...

    AngularJs demo 例子(表单验证) form

    本示例以"AngularJs demo 例子(表单验证)form"为主题,结合bootstrap美化,展示了如何在AngularJS中实现表单验证。 **1. AngularJS 表单基础** 在AngularJS中,表单是由`&lt;form&gt;`标签定义的,可以通过`ngForm`或`...

    SpringMVC整合AngularJS简单Demo.zip

    3. **AngularJS应用**:在前端,一个AngularJS应用会被创建,包括一系列的模块(`ng-app`)、控制器(`ng-controller`)、服务(`$http`用于与SpringMVC通信)、指令(自定义DOM元素或属性)等。数据双向绑定使得...

    angularJsDemo

    一个angularjs的项目demo,介绍了angularjs的文件结构,主要用于对web前端进行管理的MVC框架

    ionic angularjs mobile ui

    3. **Mobile UI**:移动UI是指为移动设备(如智能手机和平板电脑)设计的用户界面。一个好的移动UI需要考虑屏幕尺寸、触摸交互以及设备特性,以提供流畅、直观的用户体验。 4. **自适应设计**:自适应设计是一种...

Global site tag (gtag.js) - Google Analytics