学习AngularJS的一点收获

AngularJS:用来构建SPAs(Single Page Applications)html

    因为AngularJS是基于MVC模式的,因此他将Application 分解成Model View Controller。View是经过HTML和AngularJS本身的template来实现,model和controller是经过JavaScript的对象和方法来实现
jquery

    AngularJS能够写在<script>中,经过directive来扩展HTML,用{{Expression}}将数据绑定到HTML
angularjs

    咱们能够经过<script>将AngularJS引入页面:面试

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/{version}/angular.min.js"></script>

经过一个简单的例子来初步了解一下AngularJS -- “HelloWorld”ajax

<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/{version}/angular.min.js"></script>
</head>
<body ng-app="helloApp">
    <div ng-controller="helloController">
        <p>{{hello.message}}</p>
    </div>
    <script>
        angular.module('helloApp',[])
        .controller('helloController', function($scope){
        $scope.hello = {};
        $scope.hello.message = "Hello World";
        });
    </script>
</body>
</html>

    在这个例子中 ng-app定义了AngularJS应用程序为helloApp,若是没有ng-app,HTML将把表达式直接显示出来而不会进行计算json

    ng-controller定义了对应的controller为helloController。在<script>中经过angular.module.controller定义了具体的controller实现方法,这个方法只在所在的module中有效api

    <div>部分就是View
app

    $scope是很重要的一个概念,有一个根scope和多个子scope,每个view都有一个scope,多是根也多是子。对于每个在controller声明的scope中的每个变量对于其余controller来讲都是不可见的,每个controller中的scope都是不相同的
ide

Filter:
post

    过滤器用法很简单就是为了筛选出特定的数据,经过 ... |filter: ...|...|... 来使用

    Formating Filter:date, concurrency, number, json, uppercase, lowercase

    Array Filter: limitTo, filter, orderBy

    Customized: module.filter('filterName', function(){    });

    自定义的过滤器方法能够有多个参数,在使用的过程当中为:filter: var1|var2.....

Event:

    事件跟JavaScript差很少就是都变成了ng-directive了

    ng-click, ng-dbl-click, ng-mousedown, ng-mouseup, ng-mouseenter, ng-mouseleave, ng-mousemove, ng-mouseover, ng-keydown, ng-keyup, ng-keypress, ng-change

AJAX:

    能够使用$http service来实现AJAX call,有如下几种方法:

    $http.get(url, config), $http.post(url, data, config), $http.put(url, data, config), $http.delete(url, config), $http.head(url, config)

    咱们也能够经过JSON.stringify(data) 来将数据转换成JSON string

    在以上方法中的config参数,用来控制发送到server的HTTP request,他是一个JavaScript Object,包括method, url, params, headers, timeout, cache, transformRequest, transformResponse

    这些包含的内容和jquery中的ajax call内容基本同样, method定义了request的HTTP method,url定义了AJAX CALL的url, params定义了其余要加在URL上的request params,headers定义了想要发送给server的其余header,timeout定义了ajax call的时间,cache设置是否cache XHR GET request,transformRequest定义了再发送给server以前将request进行转换的方法,transformResponse定义了对在传给application以前由server发送回来的response进行转换的方法

    具体方法:

    PromiseObject.success(function(data, status, headers, config){    }).error(function(data, status, headers, config){    });

    $http.jsonP(url, config)也是一个获得JSON data的方法。可是在security方面不够好,由于当用JSONP的时候,远程server能够将任何可以在本地HTML页面中运行的JavaScript发送回来。其中甚至可能有一些JS方法会窃取我的application中的信息,所以若是要使用JSONP的话最好用在信任的server中


在AngularJS中其实还有一些内部原理和方法,比方说watch(), digest(), apply(), complie(), link()等等 可是在面试中我常常被问到的主要就是一些基础的用法和概念,比方说angularjs用在什么地方,能够怎么用,如何进行AJAX call,service,provider,routes这一类问题

在学习的过程当中主要参考了http://www.w3cschool.cc/angularjs/angularjs-intro.html还有http://tutorials.jenkov.com/

相关文章
相关标签/搜索