AngularJs(v1)相关知识和经验的碎片化记录

1、利用angular指令监听ng-repeat渲染完成后执行脚本

http://www.cnblogs.com/wangmeijian/p/5141266.html

2、$http的POST请求中请求数据的设置问题(向Web API进行请求)

前台请求代码:

$http({
    method: 'POST',
    url: 'api/controller/faction',
    params: {
        a: 'abc', b: 2 , c : 'def'
    },
    data: json_Object
}).then(function (response) {
    console.log(response.data);    
}, function (response) {
    console.log(response);
});

说明:json_Object(json对象,body(消息体,实体正文)类型)对应的是一个后台的一个类的对象。

 

后台Web API代码:

public string faction(string a, int b, string c, [FromBody]ModelClass mc)
{
    return 'OK!';
}

说明:参数mc是一个实体类的对象,在没有使用[FromBody]进行指定时,会默认指定该参数在客户端请求时需要将对应数据放入body(正文)中传输,即默认被指定了[FromBody]。此外需要注意的是上述方法中的4个参数中只能有其中一个被指定为[FromBody](同时需要注意的是只能有一个这样的类的对象参数),如果有多个指定为[FromBody],则所有的参数将会被要求放置在URL上进行请求。

2、Angular需要被webpack或browserify压缩时需要注意:

var app = angular.module('myApp', []);
    
app.controller('myAppCtrl', function($scope, $http) {    
  
});

应改为:

var app = angular.module('myApp', []);
    
app.controller('myAppCtrl', ['$scope','$http', function($scope, $http) {    
  
}]);

3、Angular的“{{expression}}”指令在IE下不兼容的情况

  • 问题描述:
<div style="width:{{expression}};"></div>

上述代码在IE 11(edge)中,width不能获取真确的值,而是直接将表达式显示expression,然而在Chrome和Firefox中正常。

  • 解决办法:

HTML代码:

<div ng-style="styleHandler(widthVal)"></div>

js代码:

$scope.styleHandle = function (p) {
    return { 'width': p };
};

 

.......

posted @ 2017-09-20 10:49  飞仔FeiZai  阅读(269)  评论(0编辑  收藏  举报