国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

使用angularJS遇見的一些問題的解決方案

2019-11-14 21:06:26
字體:
來源:轉載
供稿:網友
使用angularJS遇見的一些問題的解決方案

1. angularJS的$http.post請求,SPRingMVC后臺接收不到參數值的解決方案

問題一般為:400 Required String parameter 'rPassWord' is not present 或其他400錯誤

解決方法 一:修改源碼http://my.oschina.net/buwei/blog/191640 (可以詳細了解請求接收不到的原因)

解決方法 二:感覺修改源碼總是不好滴,可以采用這個方法,修改提交參數config的headers和transformRequest

(1) 創建一個全局的transformRequest function

var app = angular.module('myApp');app.config(function ($httpProvider) {    $httpProvider.defaults.transformRequest = function(data){        if (data === undefined) {            return data;        }        return $.param(data);    }});

然后為每一個方法或者創建一個全局的Content-Type header

$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';

(2) 為每一個需要的方法創建局部的transformRequest

var transform = function(data){        return $.param(data);    }    $http.post("/foo/bar", requestData, {        headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},        transformRequest: transform    }).success(function(responseData) {        //do stuff with response    });

參考網址AngularJS - Any way for $http.post to send request parameters instead of JSON?

2. scope.$apply的使用

問題一般為:數據雙向綁定失效,就是明明在controller里面給$scope.×××賦值了,在頁面上xxx愣是顯示不了,但是點擊一下輸入框或是form表單的提交按鈕,xxx數據信息就顯示了,是不是好坑啊。

解決方法 : 添加 $scope.$apply()

例如

$scope.$apply(function(){   $scope.xxx = “你賦的值”;
});

原因

一般情況下是不需要我們手動添加這一句代碼的,因為angularJS本身在需要的時候調用,以達到我們所看到的數據雙向綁定的效果。

但是你若是引用一個外部插件或者其他,在回調函數里創建或更新$scope.xxx的數據,因為外部插件本身已經脫離了angularJS的作用域,所以數據雙向綁定在這里沒有效果,只能手動添加$scope.$apply()來通知頁面獲取數據。

3. 因為是新手,一步一步的來


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 麟游县| 鸡西市| 玉田县| 平原县| 德令哈市| 遂宁市| 麦盖提县| 静宁县| 弥勒县| 利津县| 威宁| 沂南县| 仲巴县| 桐乡市| 天门市| 前郭尔| 方城县| 怀集县| 杨浦区| 汨罗市| 新余市| 黄石市| 津市市| 无锡市| 安义县| 济源市| 三门县| 阜宁县| 徐汇区| 大丰市| 许昌县| 六安市| 尚义县| 红桥区| 龙门县| 邯郸县| 永春县| 甘德县| 福清市| 鄱阳县| 南江县|