将Browserify与Angular JS结合使用--将服务传递到控制器中
Using Browserify with Angular JS - - Passing a service into a Controller
正如标题所示,我最近开始了一个新项目,我正在使用Browserify(和Gulp)将我的Angular JS文件(和Angular源文件)连接到一个单独的文件-bundle.JS.
我决定将我的控制器、服务和指令拆分为单独的文件,然后使用Browserify将它们"要求"到我的app.js文件中,如下所示:
(function () {
'use strict';
require('angular');
var tabCtrl = require('./controllers/tabs'),
dataService = require('./services/');
angular.module("citiToolsApp", [])
.service('dataService', ['$scope', dataService])
.controller('TabController', ['$scope', tabCtrl]);
}());
然而,当我试图从我的选项卡控制器中访问我的服务dataService时,如下所示:
module.exports = function($scope, tabController) {
dataService.getPrograms(function (response) {
console.log(response.data);
});
};
我得到一个未定义的错误。我认为我需要将dataService传递到tabController中,但我不确定这样做的语法。有人能帮忙吗?
感谢
编辑
我还添加了我的服务文件的内容以获得更多细节:
module.exports = function($http) {
this.getPrograms = function(callback) {
$http.get('/programs')
.then(callback);
};
};
我意识到了自己的错误。我需要传入$http而不是$scope。所以不是:
(function () {
'use strict';
require('angular');
var tabCtrl = require('./controllers/tabs'),
dataService = require('./services/');
angular.module("citiToolsApp", [])
.service('dataService', ['$scope', dataService])
.controller('TabController', ['$scope', tabCtrl]);
}());
应该是:
(function () {
'use strict';
require('angular');
var tabCtrl = require('./controllers/tabs'),
dataService = require('./services/');
angular.module("citiToolsApp", [])
.service('dataService', ['$http', dataService])
.controller('TabController', ['$scope', tabCtrl]);
}());
相关文章:
- 尝试将服务链接到控制器时出现角度问题
- 使用服务(AngularJS)在控制器之间共享数据
- 从AngularJS中的另一个文件中的控制器访问服务
- AngularJS 1.5.x服务未正确绑定,并且未在控制器中更新
- Ionic将firebase注入工厂,同时将控制器和服务保存在不同的文件中
- 通过共享服务在两个不同ng应用程序中的控制器之间共享数据
- Http服务工厂将未定义的返回到Angular中的控制器
- 由控制器调用的服务更改时,Angular未更新视图
- 将Browserify与Angular JS结合使用--将服务传递到控制器中
- 将工厂服务数据发送到控制器,以便在视图中使用
- 如何正确地将数据从自定义服务传递到角度控制器
- 如何将控制器http调用转换为接受参数的服务/工厂模式
- 角度控制器服务承诺不起作用
- angular应用程序中的浏览器功能检测:使用服务、指令、控制器
- 在一个控制器中更新服务变量,并在另一个控制器 - Angular JS中使用更新的值
- 从服务更新角度控制器
- AngularJS - 一个文件中的控制器和服务
- 使用路由的未定义服务控制器
- AngularJS:在服务/控制器中加载插件对象
- Angular服务/控制器没有返回承诺