Ошибка AngularJs: хотя запрос $ http определен в контроллере

0

У меня есть следующий код, в котором я вызываю службу.php для возврата данных, которые позже будут обновлять мою модель и представление. Хотя, я ввел имя службы и http в контроллере, но это дает мне ошибку.

HTML:

<html>
<head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"></script>
</head>
<body ng-app="myApp" ng-controller="myCtrl"> 
    <button ng-click="changeIt()">Change Name</button>{{name}}
    <script>
        //Module declaration
        var app = angular.module('myApp',[]);
        //controller declaration
        app.controller('myCtrl', function($scope, getName, $http){
            $scope.name = "Peter"; 
            $scope.changeIt = function(){
                getName.getTheName()
                    .success(function(data) {
                        $scope.name = data.name;
                    });
            }
        });
        //Service Declaration
        app.service('getName',function(){
            return {
                getTheName: function() {
                    return $http({
                        url: 'hello.php',
                        method: 'Post',
                        headers: {
                            'Content-Type': 'application/json'
                        }
                    });
                },
            }
        });
    </script>
</body> 
</html>

PHP:

<?php
echo $data=json_encode(array('name'=>'Lara'));
?>

Может ли кто-нибудь помочь мне решить эту проблему?

Теги:
web-services

3 ответа

1
Лучший ответ

Вам также нужно будет ввести его в эксплуатацию

app.service('getName',function($http){
            return {
                getTheName: function() {
                    return $http({
                        url: 'hello.php',
                        method: 'Post',
                        headers: {
                            'Content-Type': 'application/json'
                        }
                    });
                },
            }
        });
  • 0
    Спасибо, приятель. У изучения углов довольно быстро! ;)
2

$ http должен быть определен в службе, а не в контроллере

app.service( 'GetName', функция ($ HTTP) {

1

Вам нужно ввести $ http в сервисе getName где вы его используете.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню