gpt4 book ai didi

javascript - 将 Browserify 与 Angular JS 结合使用 - - 将服务传递到 Controller 中

转载 作者:行者123 更新时间:2023-11-30 00:09:32 25 4
gpt4 key购买 nike

正如标题所示,我最近开始了一个新项目,我使用 Browserify(和 Gulp)将我的 Angular JS 文件(和 Angular 源文件)连接成一个文件 - bundle.js。

我决定将我的 Controller 、服务和指令拆分到单独的文件中,然后使用 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]);
}());

但是,当我尝试从我的选项卡 Controller 中访问我的服务 - 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]);
}());

关于javascript - 将 Browserify 与 Angular JS 结合使用 - - 将服务传递到 Controller 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37071198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com