使用angular的一些小总结

使用angular做一个项目,却又不是完全使用的,不过也算用过了angular,里面一些常见问题,在此总结下

var routeApp = angular.module(‘allApp‘,[‘ngAnimate‘]);

1、希望$http是post传值,在头部添加

routeApp.config(function($httpProvider){
 $httpProvider.defaults.transformRequest = function(data) {
        //使用jQuery的param方法把JSON数据转换成字符串形式
        return $.param(data);
   };
    $httpProvider.defaults.headers.post = {
      ‘Content-Type‘: ‘application/x-www-form-urlencoded‘
 }
});

2、angular与fastclick

routeApp.run(function() {
      FastClick.attach(document.body);
});

3、angular controller的作用域之间的通信传值

下面是子域之间的传值,不能直接传值,需要通过父域

//子域1
routeApp.controller(‘circleListCtl‘, function($scope, $http) {
    $scope.focusManager = function(id,$event){
        $scope.$emit("focusmanager", id);
    };
});
//父域
routeApp.controller(‘parentCtl‘, function($scope) {
  $scope.$on("focusmanager",function (event, id) {
  $scope.$broadcast("focusmanagerFromParent", id);
  });
});
//子域2
routeApp.controller(‘focusManagerCtl‘, function($scope) {
 $scope.$on("focusmanagerFromParent",function (event, id) {
       //$scope.focus_show = true;
       //api.getuserid(id,$scope,"manager");
 });
});

4、angular加载时会出现闪烁问题

A将原本 <span>{{count}}</span>  这个写法改成   <span ng-bind="count"></span>

个人觉得希望angular不闪烁只需要加一个  ng-cloak即可,ng-cloak需要添加样式

[ng\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important;}ng\:form{display:block;}.ng-animate-start{clip:rect(0,auto,auto,0);-ms-zoom:1.0001;}.ng-animate-active{clip:rect(-1px,auto,auto,0);-ms-zoom:1;}

5、angular动画问题,如第一段代码,首先要加上angular-animate.js    头部引入ngAnimate

然后需要动画的地方加个类名,写上样式,这里以.repeated-item为例,是渐进渐出的样式,通常用在列表加载出来或者删除某一项时,就在要操作的元素上添加这个类名,样式如下:

.repeated-item{
  &.ng-enter, &.ng-move {
    -webkit-transition:0.5s linear all;
    -moz-transition:0.5s linear all;
    -o-transition:0.5s linear all;
    transition:0.5s linear all;
    opacity:0;
  }
  &.ng-enter.ng-enter-active,&.ng-move.ng-move-active {
      opacity:1;
  }
  &.ng-leave {
    -webkit-animation:0.5s my_animation;
    -moz-animation:0.5s my_animation;
    -o-animation:0.5s my_animation;
    animation:0.5s my_animation;
  }
}
@keyframes my_animation {
  from { opacity:1; }
  to { opacity:0; }
}
@-webkit-keyframes my_animation {
  from { opacity:1; }
  to { opacity:0; }
}

@-moz-keyframes my_animation {
  from { opacity:1; }
  to { opacity:0; }
}

@-o-keyframes my_animation {
  from { opacity:1; }
  to { opacity:0; }
}

我这个是常用,其他的没用到,有其他需要的可以在网上搜,用法差不多,就是ng-enter   ng-move这几个,附上链接一个

http://www.tuicool.com/articles/jEvY3a

6、对于有些公用的地方,又不愿意写controller的,可以使用$rootScope,作为全局的,在任何controller中都可以使用

routeApp.controller(‘parentCtl‘, function($scope,$rootScope) {
。。。。。。。。。。。。。
})

7、对于有些操作angular 的值不起作用的,可以添加 $apply

附上链接http://www.tuicool.com/articles/bAJVBvB

$scope.$apply(function(){                //添加列表
                    $scope.isowner = data.isowner;
                    if(typeof($scope.subtopics) != ‘undefined‘){
                        $scope.subtopics = arr.concat($scope.subtopics, data.subject_list);
                    }else{
                        $scope.subtopics = data.subject_list;
                    }
                });

这个$apply里面的方法是把请求后的json结果放在$scope数据上,很明显$scope.subtopics这会是一个循环的列表,循环很简单

ng-repeat="topic in subtopics track by $index"

对于有些二维数组,需要嵌套使用的,有时会报错,因为$index     需要在后面加上 track by $index 就不会报错

8、最后加上一个删除某一项的代码

$scope.programs = $.grep($scope.programs, function(x) {
    return x.id != item.id;
   }); //删除
   $scope.count -= 1;

等同
$scope.programs.forEach(function(v, i, _) {
            if (v.id == item.id) {
           $scope.programs.splice(i,1);
            $scope.count -= 1;
            }
         }); 
时间: 2024-10-13 12:35:04

使用angular的一些小总结的相关文章

Angular 8 - 更小的包

Angular 8 - 更小的包 Angular 8 发布 原文地址:https://blog.angular.io/version-8-of-angular-smaller-bundles-cli-apis-and-alignment-with-the-ecosystem-af0261112a27 Angular 8 - 更小的包,CLI API 以及与生态保持一致 Angular 8 现在发布了!这是跨越整个平台的重要发布,包括框架.Angular Material,与主版本同步的 CLI.

Angular JS知识小总结

1.什么是Angular JS? AngularJS 是一个为动态WEB应用设计的 JavaScript结构框架. 2.Angular JS的用处? --它是为了克服HTML在构建应用上的不足而设计; --适用于CRUD应用,是为了消除页面上的DOM操作而生.它的核心理念是借鉴了MVC框架,但是它其实更接近于MVVM.viemmodel是一个原生的javascript对象,angularJS把view和model加到viemmodel上,从而实现数据的绑定.而且这种绑定是双向的,即view变化

angular 选择删除 小功能

要实现的功能,如图: html代码: 编辑按钮代码: <button ng-if="noteTabs[0].active" class="button button-icon" ng-click="privateNote_edit()">{{privateNoteEditAndCancel}}</button> 列表代码: <ion-list show-delete="flag.showDelete&quo

关于angular实现文件下载小功能

$scope.downLoad=function(id){ var tt =new Date().getTime(); var url = root +'/ly/fileInfo/download.action?fileInfo.id='+id   这是下载文件的URL和参数 var form=$("<form>");//定义一个form表单 form.attr("style","display:none"); form.attr(&

用angular方法简单实现了吃了么搜索小功能,还不太完善,后续会继续添加新内容。

最近接触了Angular框架,今天用里面的http请求方法做了一个小的案例,是一个查询地名获取附近美食的小案例.还不太完善,后面面有时间会继续添加新的内容.这个小案例没有用到任何的jQuery与原生js方法. 先上HTML结构代码与HTML结构中的angular指令. <body ng-app="app"> <div ng-controller="con" id="con"> <h1>吃了么</h1>

实践总结 - 不可错过的Angular应用技巧

angular的核心思想是通过数据驱动一切,其他东西都是数据的延伸. 套用Javascript一切皆对象的思想,在angular中可以说一切皆数据. 关于项目构建  (1) requirejs以及Yeaoman 在刚开始接触或者使用Angular的时候,总会疑惑与类似的问题,我实践的答案是不需要requirejs或者Yeaoman.前者不使用,因为angular本身有module的实现.后者是因为Angular组织结构以及项目构建完全不必要弄得如此繁杂,手写或者在github上pull一个see

angular 输入框自动绑定输入长串数字出错

最近发现angular在使用input输入框的ng-model绑定scope变量的时候,发现,输入长串的数字将会出错.代码如下: <html> <head> <meta charset="UTF-8"> <title>test</title> <script type="text/javascript" src="../script/angular1.4.6.min.js">

[转载]听说2017你想写前端?

不好意思,没有像其他公众号一样赶着发文章,每年到这个时候总有一大波什么今年前端预测,技术框架预测什么的.我这次写这篇文针对的对象,是想在今年踏入前端这行的人们,不管你现在是徘徊在门口,还是已经半只脚踏入这片未知领域,都可以参考一下先行者的经验. 先来个大概预览: 项目工程化 发展方向 职业环境 总结要掌握的框架/技能 小结放在前: 2017的前端与其说更残酷,不如说更规范化,前两年各种培训了几个月就出来随口开价上万,几万的新手将被市场淘汰. 前端开发工具/编译工具 逐渐成型,虽然比不上objec

《AngularJS》5个实例详解Directive(指令)机制

本文整理并扩展了<AngularJS>这本书第六章里面的内容,此书近期即将由电子工业出版社出版,敬请期待口令:Angular 1.一点小说明 指令的作用:实现语义化标签 我们常用的HTML标签是这样的: <div> <span>一点点内容</span> </div> 而使用AngularJS的directive(指令)机制,我们可以实现这样的东西: <tabpanel> <panel>子面板1</panel>