Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在angularjs中调用服务_Javascript_Html_Css_Angularjs - Fatal编程技术网

Javascript 如何在angularjs中调用服务

Javascript 如何在angularjs中调用服务,javascript,html,css,angularjs,Javascript,Html,Css,Angularjs,我正在显示angularjs文件以列出autocomplete,现在我添加了新的服务文件以获取一些数据。我想将服务数据发送到应用程序代码中,我不知道如何将服务与控制器代码连接。当我尝试连接时,出现语法错误。请修改代码并指导我获取服务数据。这是完整的示例,向您展示如何在带有控制器的angularjs中使用服务: var-app=angular.module(“app”,[]); 应用程序控制器(“ctrl”,功能($scope,service){ $scope.alert=函数(){ servi

我正在显示angularjs文件以列出autocomplete,现在我添加了新的服务文件以获取一些数据。我想将服务数据发送到应用程序代码中,我不知道如何将服务与控制器代码连接。当我尝试连接时,出现语法错误。请修改代码并指导我获取服务数据。

这是完整的示例,向您展示如何在带有控制器的angularjs中使用
服务

var-app=angular.module(“app”,[]);
应用程序控制器(“ctrl”,功能($scope,service){
$scope.alert=函数(){
service.alert();
}
$scope.console=函数(){
service.console();
}
})
应用程序服务(“服务”,功能(){
this.alert=函数(){
警惕(“嘿”)
}
this.console=函数(){
console.log(“嘿”)
}
})

警觉的
安慰

这就是编写服务的方式-

我更喜欢工厂:

(function() {
    'use strict';
    angular
        .module('autocompleteCustomTemplateDemo', ['ngMaterial'])
        .controller('DemoCtrl', DemoCtrl);

    function DemoCtrl($timeout, $q, $log, $scope, $http) {
        var self = this;
        $scope.service_details = [];



        $scope.productdetail == [];

        $scope.add = function() {
            $scope.show_servicelist = true;
            $scope.type = function(e) {
                alert(e);
            }
            $scope.service_details.push(JSON.parse($scope.productdetails));
        }
        self.simulateQuery = false;
        self.isDisabled = false;

        self.repos = loadAll();
        self.querySearch = querySearch;
        self.selectedItemChange = selectedItemChange;
        self.searchTextChange = searchTextChange;


        function querySearch(query) {
            var results = query ? self.repos.filter(createFilterFor(query)) : self.repos,
                deferred;
            if (self.simulateQuery) {
                deferred = $q.defer();
                $timeout(function() {
                    deferred.resolve(results);
                }, Math.random() * 1000, false);
                return deferred.promise;
            } else {
                return results;
            }
        }

        function searchTextChange(text) {
            $log.info('Text changed to ' + text);
        }

        function selectedItemChange(item) {
            $log.info('Item changed to ' + JSON.stringify(item));
            $scope.productdetails = JSON.stringify(item);
        }


        function loadAll() {
            var repos = [{
                    'product_gid': '1',

                    'product_name': 'stabilizer',
                    'forks': '16,175',
                }, {
                    'product_gid': '2',

                    'product_name': 'stand',
                    'forks': '760',
                }, {
                    'product_gid': '3',

                    'product_name': 'ac',
                    'forks': '1,241',
                },

            ];
            return repos.map(function(repo) {
                repo.value = repo.product_name.toLowerCase();
                return repo;
            });
        }


        function createFilterFor(query) {
            var lowercaseQuery = angular.lowercase(query);

            return function filterFn(item) {
                return (item.value.indexOf(lowercaseQuery) === 0);
            };

        }
    }
})();

app.service("productservice", function($http) {
    this.getproduct = function() {
        deggure
        var response = $http.get("/Productjson/");
        return response;
    }
});
在这里;s控制器

(function() {
    'use strict';
    angular
        .module('app')
        .factory('productservice', productservice);
    function productservice($q, $http) {
        return {
            getproduct : getproduct
        };
        function getproduct(){
            var d = $q.defer();
            $http({
                method: 'GET',
                url: 'url'
            }).success(function(response){
                d.resolve(response);
            }).error(function(response){
                d.reject(response);
            });
            return d.promise;
        }
    }
})();

$http
返回一个承诺,使用
$q
它是一个@AlekseySolovey嘿,谢谢你的链接,我没有想到,实际上我不是在积极研究angularjs我现在搬到ng2了你能用这个答案解决你的问题吗?问OP不是你我的代码工作很好兄弟,当调试我的数据未通过抛出过滤器时,请解释如何传输数据抛出过滤器
(function() {
    'use strict';
    angular
        .module('app')
        .controller('AppController', AppController);
    function AppController(
        $scope, productservice
    ) {
            function getproduct(){
            productservice.getproduct().then(function(response){
                //got the response here
            }, function(){
            });
        }
    }
})();