多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
和上一章节中的思路相同,我们仍然将获取单条数据的信息写入至M(klass)中. # klass.js ``` ... // 获取单条数据 var get = function(id, callback) { server.http({ method:'GET', url: '/klass.Get.json?id=' + id }, function(response) { callback(response); }); }; ... // Public API here return { // 获取全部教师信息 paginate: function(name, page, pageSize, callback) { return paginate(name, page, pageSize, callback); }, save: save, get: get }; ``` ## 单元测试 test/..../klass.js ``` ... // 进行模似数据请求配置.当请求方法为post,资源名为url时, 返回data数据. $httpBackend.when('POST', url).respond(data); // 增加GET的测试 url = config.apiRootPath + '/klass.Get.json?id=1'; $httpBackend.when('GET', url).respond(data); })); ... // 调用保存 klass.save({name:'name', teacherId:3}, function(){ console.log('klass save 通过'); }); // 调用GET klass.get(1, function(){ console.log('klass get 通过'); }); // 模拟数据请求 $httpBackend.flush(); ... ``` ## 控制台数据: ``` PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 11 of 15 SUCCESS (0 secs / 0.069 secsLOG: 'klass save 通过' PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 11 of 15 SUCCESS (0 secs / 0.069 secsLOG: 'klass get 通过' ``` # C与M对接 klass/edit.js ``` // 获取当前班级信息 var getKlass = function() { klass.get($scope.klass.id, function(response) { $scope.klass = response.klass; }); }; ``` ## 测试 [./image/4.4.1.png](./image/4.4.1.png) > git checkouf -f step12.4.4