AngularJS $ http获取文本

时间:2017-08-17 07:25:09

标签: angularjs http

我需要从文件text.log获取文字,这是我的代码:

  vm.logget = function(){
        $http({
            method: 'Get',
            url: 'text.log'
        })
            .then(function successCallback(response) {
                $scope.logget = response;
                console.log($scope.logget);

            }, function errorCallback(response) {
                console.log(response);
                console.log('error');
            });

    }

text.log:

creating: /asd/ds/das/das-dsss/
creating: /asd/ds/das/das-dsss/
creating: /asd/ds/das/das-dsss/
creating: /asd/ds/das/das-dsss/
creating: /asd/ds/das/das-dsss/

PLunker:http://plnkr.co/edit/g1t4pludTTIAJYKTToCK?p=preview

我在succesCallback中没有得到任何东西。 提前感谢您的回答!

3 个答案:

答案 0 :(得分:1)

使用ng-controller="FirstCtrl as vm"或将功能更改为

$scope.logget = function() {
   $http({
       method: 'Get',
       url: 'text.log'
     })
     .then(function successCallback(response) {
       $scope.data = response;
       console.log($scope.data);

     }, function errorCallback(response) {
       console.log(response);
       console.log('error');
     });
}

工作plunker

答案 1 :(得分:1)

请在您的plunker中尝试以下代码: 在HTML中:

 <body ng-controller="FirstCtrl as vm">
      <button ng-click="vm.logget();" type="button" class="btn btn-default">Log</button>
          {{vm.loggetData}} <!--See I have changed the Binding variable-->
 </body>

并在Controller中:

var app = angular.module('app', ['ui.bootstrap']);
app.controller('FirstCtrl', function($scope, $http) {
     var vm = this;
     vm.logget = function(){
        $http({
            method: 'Get',
            url: 'text.log'
        }).then(function(response) {
               vm.loggetData = response.data;
             }, function(response) {
                console.log(response);
                console.log('error');
            });
      }

});

答案 2 :(得分:1)

您的代码中存在两个问题

首先,你必须使用控制器作为语法

ng-controller="FirstCtrl as vm"

其次,你必须访问你的回复的数据属性

 vm.logget1 = response.data;

Working Plunker http://plnkr.co/edit/cqhzeb4dJoyr7BSP2LAA?p=preview

注意:如果您使用其他变量来存储您的响应,那就更好了,因为logget已经是您的函数名称。如果您使用控制器作为语法

,也可以尝试避免$scope

有关控制器的更多信息AngularJs "controller as" syntax - clarification?