我是 AngularJS 的新手。
我可以通过使用 $http 服务方法 get/post 调用模拟端点来在 AngularJS 中使用 mockjax。如果没有,$http 是否提供了一种创建端点并调用它们的方法?
例如 MockService 是这样的
$.mockjax({
url: '/sometest/abc',
type: 'post',
responseTime: 2000,
responseText: {
LoginSuccessful: true,
ErrorMessage: "Login Successfuly",
Token: "P{FsGAgtZT7T"
}
});
我创建的 DataService 如下所示。
'use strict';
//Data service
angular.module('app').factory('dataService',['$http', function($http){
var restCall = function (url, type, data, successCallback, errorCallback) {
$http({
method: type,
url: url,
data: data,
}).
success(function (data, status, headers, config) {
successCallback(data);
}).
error(function (data, status, headers, config) {
errorCallback(data)
});
};
return {
getTemplate: function (success, error) {
restCall('/sometest/abc', 'GET', null, success, error);
}
};
}]);
控制器如下
angular.module('App').controller('mainCtrl', ['$scope', 'trackService', 'dataService',
function ($scope, TrackService, ds) {
ds.getTemplate(function (data) {
//do some calculation
}, function () {
console.warn('Something is not right');
});}]);
我想知道这是使用 $http 的正确方法,还是应该做其他事情。这是我试图在实际代码中实现的目标,而不是在使用 jasmine 的单元测试中。