看了一天的angular.js,只要记住这是关于双向数据绑定 和单向数据绑定就可以,看看开发文档,短时间内还是可以直接入手的,看个人理解能力(我是小白)。

这几天开始着手学习angularjs的有关知识,将一些心得总结如下:

(一)为了使用Angular,所有应用必须首先做两件事情:

1.加载angular.js库。

既可以从外部调用,如:

<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"> </script>

也可以在本地放入angular.js。

2.使用ng-app指令告诉angular应该管理DOM的哪一部分

(二)MVC风格

1.控制器就是你所编写的类或者类型,它的作用是告诉angular该模型是由哪些对象或者基本数据构成的,只要把这些对象或者基本数据设置到

$scope对象上即可,$scope对象会被传递给控制器:如下

<html ng-app='myApp'>

<body ng-controller="TextController">

<p>{{someText.message}}</p>

<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js">

</script>

<script>

var myAppModule = angular.module('myApp',[ ]);

myAppModule.controller('TextController',

function ($scope){

var someText = {};

sometText.,message = "First data !";

$scope.someText =sometText;});

</script>

</body>

</html>

2.区分UI和控制器的职责

在应用中控制器有三种职责:

(1)为应用中的模型设置初始状态。

(2)通过$scope对象把数据模型和函数暴露给视图(UI模板)。

(3)监视模型其余部分的变化,并采取相应的动作。

为了让控制器保持小巧和可管理状态,建议,为视图中的每一块功能区域创建一个控制器。控制器是绑定在特定的DOM片段上的,

这些片段就是它们需要负责管理的内容。

(三)依赖注入

这个原理简单归纳如下:

高层次模块不应该依赖低层次模块,他们应该依赖于一种抽象。这种抽象不应该依赖细节,细节应该依赖于抽象 。

我只要指出我需要哪些对象,然后就会有人把这个对象给我,而这个“人”可能是一个应用框架(Framework),也可能是测试

容器(Test Runner),我不会关心它是谁,也不用关心它怎么得到这个对象。这个“人”,专业的说法叫“容器”。在Angular中,

所有主要编程元素都需要通过某种方式注册进去,比如myModule.service('serviceName',function()...这实际上就是把后面这个

函数加入到一个容器中。要注意的是,angular全面实现了延迟初始化,也就是说,当这个对象没有被人需要时,它是不会被创建

的,这样对于提高性能有一定的帮助,特别是加快了启动速度。

原文:https://blog.csdn.net/sweety815/article/details/51251373

新手入门学习angular.js的心得体会的更多相关文章

  1. 人工智能新手入门学习路线和学习资源合集(含AI综述/python/机器学习/深度学习/tensorflow)

    [说在前面]本人博客新手一枚,象牙塔的老白,职业场的小白.以下内容仅为个人见解,欢迎批评指正,不喜勿喷![握手][握手] 1. 分享个人对于人工智能领域的算法综述:如果你想开始学习算法,不妨先了解人工 ...

  2. 学习angular.js的一些笔记想法(上)

    1.data-ng-app与ng-app的区别 data-ng-app是为了h5不报错 2.ng-class 不多说就来拿例子说吧 html代码 <div class='color-change ...

  3. Linux系统新手入门学习的四点建议

    随着计算机的普及.互联网的发展,原本黑客手中的攻城利器---Linux,渐渐进入到普通群众的视线里,让越来越多的人接触到Linux,并学习Linux进而投身到Linux运维工作中去.如果大家对Linu ...

  4. 工作流Activiti新手入门学习路线整理

    写在前面: 最近项目中使用到了工作流,虽然此部分不是自己需要完成的,但是也涉及到了要调用写的接口.正好有时间,就了解下,以便之后能在其他项目中用到时,不至于什么都不知道什么都不了解. 这里就主要整理下 ...

  5. 学习asp.net Identity 心得体会(连接oracle)

    asp.net Identity具体功能暂不在此细说,下面主要介绍几点连接oracle注意的事项, 1.首先下载连接oracle驱动Oracle.ManagedDataAccess.dll和Oracl ...

  6. Python新手入门学习常见错误

    当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂.这里列出了常见的的一些让你程序 crash 的运行时错误. 1)忘记在 if , elif , else , for , ...

  7. 学习 google file system 心得体会

    Google File system文件系统,是在特别便宜的普通硬件设备上运行,它是一个面向大规模数据密集型运用的.可伸缩的分布式文件系统. 与传统文件相比,它认为组件失效是很平常的事件,因为GFS包 ...

  8. GIT新手入门学习教程

    廖雪峰的GIT教程 链接地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

  9. Django:新手入门学习资料汇总

    (1)作者(刘江)(神都公务员出身,军工专家,文章详尽全面):http://www.liujiangblog.com/course/django/2 (2)魔力Python:作者(小楼一夜听春语)(文 ...

随机推荐

  1. 2015南阳CCPC L - Huatuo's Medicine 签到

    L - Huatuo's Medicine Description Huatuo was a famous doctor. He use identical bottles to carry the ...

  2. POJ 3221 Diamond Puzzle.

    ~~~~ 题目链接:http://poj.org/problem? id=3221 显然是BFS找最优解.但是终止条件不好写.看到有一仅仅队交上去一直TLE. 比赛完了看题解原来是以目标状态为起点,B ...

  3. Timus 1146. Maximum Sum

    1146. Maximum Sum Time limit: 0.5 secondMemory limit: 64 MB Given a 2-dimensional array of positive ...

  4. 面向画布(Canvas)的JavaScript库

    面向画布(Canvas)的JavaScript库 总结 每个库各有特色,根据需求选择   学习要点 面向画布(Canvas)的JavaScript库 EaselJS 是一个封装了 HTML5 画布(C ...

  5. 【NOI2009】Bzoj1562&Codevs1843 变换序列

    目录 List Description Input Output Sample Input Sample Output HINT Solution 官方题解%莫队 Code Position: htt ...

  6. [Swift通天遁地]四、网络和线程-(14)创建一个Socket服务端

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  7. Codeforces 455D 分块+链表

    题意: 给定一个长度为 N 的序列两种操作1 l r 将[l,r]的数向右循环移位 2 l r 询问[l,r]内有多少个数等于 k其中 N,Q≤105,ai≤N 强制在线 思路: 1. 每块用一个链表 ...

  8. Github提交本地版本是遇到的问题

    问题如下:*** Please tell me who you are. Run git config --global user.email "you@example.com" ...

  9. java练习题-求int类型N值的阶乘

    //求int类型N值的阶乘 public static int getNumsJieCheng(int i){ int rs = 1; if(i==0||i==1){ return i; } if(i ...

  10. spring-framework-4.1.x源码阅读环境搭建(导入Eclipse)

    注意:搭建spring-framework-4.1.x源码 eclipse工作空间需要安装jdk8. spring-framework-4.1.x项目采用目前主流的项目管理工具gradle进行构建,至 ...