• angularjs 基础


    angularjs 学习

    <div ng-app="hd" ng-controller="ctrl">
    	{{name}}
    </div>
    
    var m = angular.module('hd', []);
    m.controller('ctrl', ['$scope', function($scope){
    	$scope.name = 'cjw';
    }])
    

    ng-cloak 避免闪屏幕

    ng-bind和{{}}

    <h3 ng-bind="name"></h3>
    {{name}}
    

    双向绑定

    <div ng-app="cjw" ng-controller="ctrl">
    	<input type="text" ng-model="name">
    	{{name}}
    </div>
    <script>
    	var m = angular.module('cjw', []);
    	m.controller('ctrl', ['$scope', function($scope){
    		$scope.name = 'cjw';
    	}])
    </script>
    

    radio

    <input type="radio" ng-model="staus" ng-value="1">开启
    <input type="radio" ng-model="staus" ng-value="0">关闭
    

    checkbox

    <input type="checkbox" ng-model="video" ng-true-value="1" ng-false-value="0">
    

    select

    <select name="" id="" ng-model="city" ng-options="v.vlaue as v.name for v in data"></select>
    

    global 函数

    angular.version
    angular.uppercase
    angular.copy
    angular.forEach
    
    angular.toJson JSON.strigify()
    angular.fromJson JSON.parse()
    

    判断函数

    angular.isArray
    angular.isUndefined
    angular.isString
    angular.isObject
    angular.isNumber
    angular.isElement
    angular.equals
    

    ng-disabled 不可点击

    ng-repeat ng-class ng-class-odd ng-class-even

    <ul ng-repeat="(k, v) in data">
    	<li>{{v.name}}</li>
    	<li ng-class="{blue: v.id==1, orange: v.id==2}">{{v.url}}</li>
    	<li>{{k}}</li>
    </ul>
    

    ng-model-options

     <input type="text" ng-model="title" ng-model-options="{updateOn:'default blur',debounce:{default:2000,blur:0}}">
        {{title}}
    

    全选 反选

    <table>
    	<tr>
    		<td>全选 <input type="checkbox" ng-model="all"> </td>
    		<td></td>
    		<td></td>
    	</tr>
    	<tr ng-repeat="v in data">
    		<td><input type="checkbox" ng-checked="all"> </td></td>
    		<td>{{v.name}}</td>
    		<td>{{}}</td>
    	</tr>
    </table>
    

    ng-class

    <li ng-class="{blue: v.id==1, orange: v.id==2}">{{v.url}}</li>
    

    ng-style

    <span ng-style="{color:color,fontSize:size+'px'}">后盾人</span>
    

    事件

    ng-click
    ng-mouseover
    

    过滤器

    currency number
    {{price|currency:'¥':1}}
    {{price|number:2}}
    lowercase uppercase
    {{name|lowercase}}
    {{name|uppercase|lowercase}}
    limitTo
    {{data|limitTo:3:1}}
    date
    {{time|date:'yyyy年MM月dd日 HH时mm分ss秒'}}
    {{data|orderBy:'click':true}}
    {{data|filter:'后盾人':true}}
    
     $scope.data = $filter('orderBy')($scope.data,'id',true);
    
    $scope.status = {id: false, click: false, title: false};
            $scope.orderBy = function (field) {
                $scope.status[field]=!$scope.status[field];
                $scope.data = $filter('orderBy')($scope.data, field, $scope.status[field]);
            }
    

    $watch

     $scope.$watch('news', function (n, o) {
                $scope.error = n.title.length>3?'标题长度输入错误':'';
            }, true);
    

    指令

    m.directive('hdcms', [function () {
        return {
            restrict: 'AEC',//a attr e element  c class
            template: '指令'
        }
    }]);
    
    <div hd-cms color="orange">你好</div>
     m.directive('hdCms', [function(){
            return {
                restrict: 'AEC',
                template: function(elem, attr){
                    return "<span style='color:"+attr['color']+"'>"+$(elem).html()+"</span>";
                }
            }
        }])
    

    replace: false//是否替换本来节点

    m.directive('hdCms', [function () {
            return {
                restrict: 'EA',//a attr e element  c class
    //            replace: true,
    //            template:'abc'
                templateUrl: '../view/hdcms.html'
            }
        }]);
    

    scope: {color:'@hdColor'}
    scope: {color:'=hdColor'}
    scope: {color: '&hdColor'}

     @
    单项绑定的前缀标识符
    使用方法:在元素中使用属性,好比这样<div my-directive my-name="{{name}}"></div>,注意,属性的名字要用-将两个单词连接,因为是数据的单项绑定所以要通过使用{{}}来绑定数据。
    
    =
    双向数据绑定前缀标识符
    使用方法:在元素中使用属性,好比这样<div my-directive age="age"></div>,注意,数据的双向绑定要通过=前缀标识符实现,所以不可以使用{{}}。
    
    <
    单项绑定的前缀标识符,和=使用类似。不同的是改变内部scope不会反映到parent的scope
    
    使用方法:在元素中使用属性,好比这样<my-component my-attr="parentModel">,directive的定义scope: { localModel:'<myAttr' }。代码 
    
    &
    绑定函数方法的前缀标识符
    使用方法:在元素中使用属性,好比这样<div my-directive change-my-age="changeAge()"></div>,注意,属性的名字要用-将多个个单词连接。
    
    m.directive('hdCms', [function () {
            return {
                restrict: 'E',
                replace: true,
                templateUrl: '../view/57.html',
                controller: ['$scope', function ($scope) {
                    $scope.data = [
                        {id: 1, name: '后盾人'},
                        {id: 1, name: 'hdcms'},
                        {id: 1, name: 'hdphp'}
                    ];
                }]
            }
        }]);
    

    $interval $interval.cancel(id);

     $scope.getClientHeight=function(){
                $scope.clientHeight = $window.document.body.clientHeight;
            }
            $scope.getScrollHeight=function(){
                $scope.scrollHeight = $window.document.body.scrollHeight;
            }
            $scope.prompt=function(){
                $scope.content = $window.prompt('请输入内容');
            }
    
    m.controller('ctrl1', ['$scope', '$cacheFactory', function ($scope, $cacheFactory) {
            var obj = $cacheFactory('hdphp');
            //sessionStorage  localStorage
            obj.put('web', {name: '后盾人', url: 'houdunren.com'});
            obj.put('user', {name: '向军', mail: '2300071698@qq.com'});
            $scope.data = obj.get('web').name;
            //删除缓存数据
    //        obj.remove('web');
    //        obj.removeAll();
    //        obj.destroy();
    //        console.log(obj.get('web'));
    //        console.log(obj.get('user'));
        }]);
        m.controller('ctrl2', ['$scope', '$cacheFactory', function ($scope, $cacheFactory) {
            var obj = $cacheFactory.get('hdphp');
            $scope.data = obj.get('web').name;
        }]);
    

    $http

    m.controller('ctrl', ['$scope', '$http', function ($scope, $http) {
            $http({
                method:'get',
                url:'1.php'
            }).then(function(response){
                //成功时执行
                console.log(response);
                $scope.data = response.data;
            },function(response){
                //失败时执行  hdphp
                console.log(response);
            });
        }]);
    

    dao层:就是Model层,在后台时,这一层的作用,就要是写与数据库交互数据的一层,在angularJS里就主要是写ajax的。
    service层:主查写逻辑代码的,但在angularJS里也可以持久化数据(充当数据容器),以供不同的controller高用。
    controller层:即控制层,在angularJS里就是写控制器的。控制器里尽量不要写那些不必要的逻辑,尽量写在service层里。
    所以,就有了创建自定义服务的三种方式。

     var app = angular.module('myApp', []);
        app.factory('myFactory', function($http,$q) {
            var service = {};
            service.name = "张三";
            //请求数据
            service.getData = function(){
                var d = $q.defer();
                $http.get("url")//读取数据的函数。
                .success(function(response) {
                    d.resolve(response);
                })
                .error(function(){
                    d.reject("error");
                });
                return d.promise;
            }       
            return service;
        });
        app.controller('myCtrl', function($scope, myFactory) {
            //alert(myFactory.name);
            myFactory.getData().then(function(data){
                console.log(data);//正确时走这儿
            },function(data){
                alert(data)//错误时走这儿
            });;
        });
    
    <div ng-app="myApp" ng-controller="myCtrl">
        <h1>{{r}}</h1>
    </div>
    <script>
        var app = angular.module('myApp', []);
    
        app.service('myService', function($http,$q) {
            this.name = "service";
            this.myFunc = function (x) {
                return x.toString(16);//转16进制
            }
            this.getData = function(){
                var d = $q.defer();
                $http.get("ursl")//读取数据的函数。
                    .success(function(response) {
                    d.resolve(response);
                })
                    .error(function(){
                    alert(0)
                    d.reject("error");
                });
                return d.promise;
            }
        });
        app.controller('myCtrl', function($scope, myService) {
            $scope.r = myService.myFunc(255);
            myService.getData().then(function(data){
                console.log(data);//正确时走这儿
            },function(data){
                alert(data)//错误时走这儿
            });
        });
    </script>
    
  • 相关阅读:
    python 的基础 学习 第六天 基础数据类型的操作方法 字典
    python 的基础 学习 第五天 基础数据类型的操作方法
    python 的基础 学习 第四天 基础数据类型
    ASP.NET MVC 入门8、ModelState与数据验证
    ASP.NET MVC 入门7、Hellper与数据的提交与绑定
    ASP.NET MVC 入门6、TempData
    ASP.NET MVC 入门5、View与ViewData
    ASP.NET MVC 入门4、Controller与Action
    ASP.NET MVC 入门3、Routing
    ASP.NET MVC 入门2、项目的目录结构与核心的DLL
  • 原文地址:https://www.cnblogs.com/caijw/p/9064198.html
Copyright © 2020-2023  润新知