AngularJs 学习 (一)

最近学习了一下关于AngularJs的知识,发现和Vue还是有非常相似的东西。所以对于学过Vue的自己来说,还是比较好理解的

特点:双向数据绑定,单页面应用

控制器:

  AngularJs控制器可以控制网页上的DOM元素,也可以响应网页上的单击事件,这一切源于$scope,它是模型(ng-model)于视图(View)

的数据通道。其中$scope起到了一个数据传递作用。

而要实现控制器必须在DOM元素上加上ng-controller( Angular的一个指令), Controller于View是绑定在一起的。当Angluar加载时,它就会加载

读取ng-controller的参数。

模块:

AngularJs的一个非常重要的概念--Module,对于一个Angular应用来说,是由多个模块组成的。同时模块是存在可复用性,可在多个地方被调用。

模板:

 这个地方是Angular比较重要的地方,(同时Vue中也是有的),对于一个项目模板是一个很重要的部分。它能动态的展示不同的视图(页面)。其中

要是使用模块这个功能就必须用到ng-template这个指令;同时使用模块这个一般和ng-view(管理视图)的指令一起使用

路由:

路由是什么,就是我们在应用上要实现页面的跳转,要实现这样的功能就需要使用路由来进行管理。在这里说明一下AngularJs1.2版本之后ngRoute被单独剥离出来,

需要进行重新引用。AngularJS的$route所提供的$routeProvider声明路由

工厂方法:

 这个和java中的工厂方法有点类似,毕竟设计模式这样。就是如果一个对象$scope.xxx要在多个地方调用,就需要去把这个对象个做成单例对象。而在AngularJs里面实现

这种最简单的方式就是调用factory();通过factory()来返回对应的属性方法。

提供一个案例来供分析:

<!DOCTYPE html>
<html ng-app="myApp">
<head>
  <title> Hello World in AngularJs </title>
   <script src="js/angular.min.js"></script>

   <script src="js/angular-route.js"></script>

  <!--
  <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
      <script src="http://apps.bdimg.com/libs/angular-route/1.3.13/angular-route.js"></script>
 c‘f
  -->

</head>
<body>
<div ng-view></div>
<script type="text/ng-template" id="/todos.html">
  <ul>
    <li ng-repeat="todo in todos">
      <input type="checkbox" ng-model="todo.completed">

      <a href="#/{{ $index }}"> ID{{ id }}</a>
    </li>
  </ul>
</script>
<script type="text/ng-template" id="/todoDetails.html">
  <h1>{{ todo.name }}</h1>
  completed: <input type="checkbox" ng-model="todo.completed">
  note: <textarea>{{todo.note}} </textarea>
</script>

<script>  // 创建模块
  var app = angular.module(‘myApp‘, [‘ngRoute‘]);

  // 创建工厂方法 实例一个公用对象
  app.factory(‘Todos‘, function () {
    return [
      { name: ‘掌握 HTML/CSS/Javascript‘, completed: true },
      { name: ‘学习 AngularJS‘, completed: false },
      { name: ‘熟悉 NodeJS ‘, completed: true },
      { name: ‘接触 ExpressJS‘, completed: false },
      { name: ‘搭建 MongoDB database‘, completed: false },
    ]
  }) // 路由配置
  app.config([‘$routeProvider‘, function ($routeProvider) {
    $routeProvider
    .when(‘/‘, {
        templateUrl: ‘/todos.html‘,
        controller: ‘TodoController‘
      })
    .when(‘/:id‘, {
          templateUrl: ‘/todoDetails.html‘,
          controller: ‘TodoDetailContrl‘
      })
  }])

  app.controller(‘TodoController‘, [‘$scope‘, ‘Todos‘, function($scope, Todos) {
    console.log(‘llll‘);
    $scope.todos = Todos
  }])

  app.controller(‘TodoDetailContrl‘, [‘$scope‘, ‘$routeParams‘, ‘Todos‘, function($scope, $routeParams, Todos) {
    console.log(‘xxx‘);
    $scope.todo = Todos[$routeParams.id]
  }])
</script>
</body>
</html>

  

原文地址:https://www.cnblogs.com/yaobolove/p/8506798.html

时间: 2024-08-30 15:32:11

AngularJs 学习 (一)的相关文章

Angularjs学习---angularjs环境搭建,ubuntu 12.04下安装nodejs、npm和karma

1.下载angularjs 进入其官网下载:https://angularjs.org/?,建议下载最新版的:https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.7/angular.js 所有版本:https://code.angularjs.org/ 2.示例1 HelloWorld ! 新建一个helloworld.html <!doctype html> <html ng-app> <head> &

AngularJs学习总结-基本特性

现在的前端项目中基本上都会用到angularjs框架,之前并不了解这个框架,也是因为最近接手的项目,所以打算好好的学习下它.之前都是搞pc端,现在接手的是移动端的项目,移动端UI框架用的是ionic+vordova,没有用bootstrap,主要做的是ios+安卓的app界面,ionic这个框架也不太了解,也需要花时间好好熟悉下.angularjs学习小白一枚,欢迎大神指正. AngularJs是什么? 简单来说,即javascript的一个框架,通过script标签添加到网页中.即我们使用an

AngularJS 学习

AngularJS 学习笔记(1) AngularJS是一款前端JS框架.AngularJS官网 http://angularjs.org [开发环境准备]: 1,下载AngularJS:JS and CSS in Solution 2,编辑器 WebStorm,下载地址:https://www.jetbrains.com/webstorm/  (配合最新版JetBrains使用,可以即时无刷新显示更新代码后的效果) 3,下载最新版Chrome,并安装扩展程序:JetBrains IDE Sup

我的AngularJS 学习之旅

基础篇 1.Angular的 起源 2.比较Web 页面实现的几种方式 3.一些基本术语 4.Angular与其他框架的兼容性 5.总结 6.综合实例 很早之前就听朋友说起AngularJs,但由于各种原因,一直没去研究.最近正好有同事也对这个框架比较感兴趣,大家一起讨论,于是终于“名正言顺”地开始研究了. 本文的目的是记录一下自己这两周的学习点滴,算是学习笔记吧,如果对初学的朋友有一点帮助,那也算是一件好事.嘿嘿 1.Angular的 起源 关于Angular 的起源,可以追溯到2009 年的

AngularJS学习--- 动画操作 (Applying Animations) ngAnimate step 12

1.切换目录 git checkout step-12 npm start 2.效果图 这里在点击右边的缩略图时,会有一个很明显的从下向上的动画过程. 3.代码实现: step11和step12之间的代码差异:https://github.com/angular/angular-phonecat/compare/step-11...step-12 Dependencies(依赖的js库): bower.json { "name": "angular-seed", &

angularjs学习笔记—事件指令

angularjs学习笔记—事件指令 小俞 4.4k 3月30日 发布 推荐 4 推荐 收藏 17 收藏,11.1k 浏览 ngClick 适用标签:所有触发条件:单击 #html <div ng-controller="LearnCtrl"> <div ng-click="click()">click me</div> <button ng-click="click()">click me<

angularJS学习资源最全汇总

基础 官方: http://docs.angularjs.org angularjs官方网站已被墙,可看 http://www.ngnice.com/: 官方zip下载包 https://github.com/dolymood/angular-packages,已增加docs服务,输入地址即可,例如:http://blog.aijc.net/angular-packages/angular-1.3.15/docs/ jquery?ag? : http://stackoverflow.com/qu

AngularJS学习之旅

开篇 最近由于项目上可能需要用到AngularJS,公司将技术学习.调研的任务安排了下来,因此开始了我的AngularJS学习之路. 在这之前没写过技术博客,主要是由于太懒,另外自愧文笔不好,因此一直以来羞于提笔.但想来做技术好多年,不能再是碎片式学习了,得更系统地学习,将自己对于技术的理解记录下来,敢于呈现给大家并接受大家的指正. 闲言碎语不多说,还是直接开始我的AngularJS学习之旅吧. 学习足迹 AngularJS入门 (1)认识AngularJS

AngularJS学习教程

图灵:http://www.ituring.com.cn/minibook/303 AngularJS中文社区:http://angularjs.cn/tag/AngularJS AngularJS学习笔记:http://www.zouyesheng.com/angular.html#toc1

AngularJS学习--- 过滤器(filter),格式化要显示的数据 step 9

1.切换目录,启动项目 git checkout step-9 npm start 2.需求: 格式化要显示的数据. 比如要将true-->yes,false-->no,这样相互替换. 3.效果: 4.代码实现: 这里主要是使用filter过滤器来进行数据过滤,这里只是在前端进行数据过滤,原始数据是不发生变化的. $filter:Filters are used for formatting data displayed to the user,格式化要显示的数据. 用法: {{ expres