Не могу получить услугу $ http angularjs - PullRequest
0 голосов
/ 28 сентября 2018

Кто-нибудь может мне помочь.Мой сервис :( Название сервиса: reviewService)

this.addFeedback = function (param) {
    return httpService.post('my api', param);
}

Мой контроллер:

$scope.param= {
    ParentId: null, 
    Comment: ''
};

//Reply Button
$scope.Reply= function () {

};
//Submit Reply button on Popup
$scope.Submit = function () {
    reviewService.addFeedback($scope.param).then(function (response) {
        if (response.data.IsSuccess) {
            $scope.Array = response.data.Value;
        }
    });
};

Моя идея: ** ParentId - это идентификатор комментария пользователя (Элемент) При нажатии кнопки «Ответить» для ответаПользовательский комментарий.Я хочу получить идентификатор элемента, нажав, установить в ParentId объекта.А затем показать всплывающее окно, вставить ответ и отправить.Пожалуйста, помогите мне!

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Надеюсь, это поможет вам:)

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, reviewService) {
    $scope.comments = [{ParentId: "1", Comment: "Click me 1"}, {ParentId: "2", Comment: "Click me 2"}];
    $scope.param= {
        ParentId: null, 
        Comment: ''
    };
    
    $scope.addFeedback = function (comment) {
        $scope.param.ParentId = comment.ParentId;
        $scope.param.Comment = comment.Comment;

        //Get the comment Id from UI and pass it into the service
        reviewService.addFeedback($scope.param).then(function (response) {
            if (response.data.IsSuccess) {
                $scope.Array = response.data.Value;
            }
        });
    }
});

app.factory('reviewService', function($http){
 var factory = {
     addFeedback: function (feedback) {
         var promise = new Promise(function(resolve, reject){
             //we will call $http service here
             //return httpService.post('my api', param);
             
             //mockup data
             console.log(feedback);
             setTimeout(function(){
                 resolve(feedback); 
             }, 1000);
             
         });
         
         return promise;
         
     }
 }
 
 return factory;
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp" ng-controller="myCtrl">
  <div ng-repeat="comment in comments" ng-click="addFeedback(comment)">{{comment.Comment}}</div>
</div>
0 голосов
/ 28 сентября 2018

Вы вводили $ http в свой контроллер / фабрику?Например:

app.controller('myCtrl', function($scope, $http) {
    $http.get("welcome.htm")
    .then(function(response) {
        $scope.myWelcome = response.data;
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...