2 Responses so far.
Leave a Comment
Очень удобно, если сначала разрабатывается полностью клиентская часть.
Сначала нужно подключить angular-mocks
index.html
1 2 3 |
<script src="scripts/vendor/angular.js"></script> <script src="scripts/vendor/angular-resource.min.js"></script> <script src="scripts/vendor/test/angular-mocks.js"></script> |
Вся магия здесь (обратите внимание на ngMockE2E и .run):
app.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
var staticApp = angular.module('staticApp', ['ngMockE2E', 'trainingService']) .config(['$routeProvider', function ($routeProvider) { $routeProvider .when('/', { templateUrl: 'views/main.html', controller: 'MainCtrl' }) .when('/training', { templateUrl: 'views/trainingList.html', controller: 'TrainingListCtrl' }) .when('/training/:id', { templateUrl: 'views/training/read.html', controller: 'TrainingCtrl' }) .when('/training/:id/edit', { templateUrl: 'views/training/edit.html', controller: 'TrainingEditCtrl' }) .otherwise({ redirectTo: '/' }); }]) // здесь происходит подмена запросов к серверу .run(function ($httpBackend) { $httpBackend. whenGET(/\/trainings\/.*\.json/). respond(200, {some: 'any'}, {header: 'one'}); $httpBackend. whenGET(/.*/). passThrough(); }); |
Собственно всё.
Но для полноты картины приведу использование.
Я использую сервис trainingService для REST-запросов на этой странице.
training.js
1 2 3 4 5 6 |
angular.module('trainingService', ['ngResource']). factory('Training', function ($resource) { return $resource('/trainings/:id.json', {id: '@id'}, { query: {method: 'GET', params: {id: 'all'}, isArray: true} }); }); |
И остался контроллер
1 2 3 4 5 6 7 8 9 10 11 12 13 |
staticApp.controller('TrainingEditCtrl', function ($scope, $routeParams, Training) { $scope.training = Training.get({id: $routeParams.id}, function (training) { if (training.restricted) { $scope.restricted = true; } }); $scope.saveTraining = function () { $scope.training.$save(); }; ... }); |
Ссылки по теме:
http://docs.angularjs.org/api/ngMockE2E.$httpBackend,
http://docs.angularjs.org/api/ngMock.$httpBackend,
простой пример (правда у меня так и не завёлся его аналог) — http://jsfiddle.net/vojtajina/DQHdk/
Для отправки комментария вам необходимо авторизоваться.
Желательно в форме вопрос-ответ и с примерами кода на http://jsbin.com.