如何使用$ http响应更新Angular模型?

凯尔

我正在使用Angular构建一个http请求,$http并尝试使用响应中的数据返回来更新位于'$ scope'的模型。当我从节点后端收到响应时,我正在设置'$ scope.data = data;'。在成功回调中。当我逐步浏览javascript时,可以看到响应正确,并且显示了状态码。以下是我要执行的操作的一个示例:

angular.module("Sample").controller('MainCtrl', ['$http', '$scope', function($http, $scope) {

this.testcall = function (url) {

  $http.post(url).success(function (data, status) {
    console.log(data);
    $scope.data = data;
    $scope.status = status;
    console.log($scope.data);
  }).error(function (data, status) {
    console.log('failed');
    $scope.response = 'failed call';
    $scope.status = status;
  });
};
}

在我的html模板中,我在div中设置了控制器,并且我试图显示该响应。

<div ng-controller="MainCtrl as main">
  {{data}}
</div>

我可以为数据设置一个值,并使其在加载时显示,但是当值更改时,它不会被重绘。据我了解,“ $ http”会导致“ $ digest”被调用,这应该重新绘制任何修改过的模型。

凯尔

我相信我最初的问题是$scope我最终通过创建新指令来解决问题,以试图将范围和问题隔离开。

下面分别是我的button-directive.js和标记。

(function() {
  var app = angular.module('Sample', []);

  app.directive('submitButton', function() {
    return {
      restrict: 'E',
      scope: {}
    };
  });

  app.controller('SubmitCtrl', ['$http', '$scope',
    function($http, $scope) {
      this.submit = function() {
        console.log('hit');
        $http.get('http://ip.jsontest.com/').success(function(data, status) {
          $scope.data = data;
          $scope.status = status;
          console.log(data);
        }).error(function(data, status) {
          $scope.status = status;
          $scope.data = data;
        });
      };
    }
  ]);
})();
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="Sample">
  <div ng-controller="SubmitCtrl as controller">
    <button type="submit" ng-click="controller.submit()">Submit</button>

    Response Data: {{data}}
    <br/>Status Code: {{status}}
  </div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Angular中直接将HTTP响应分配给接口模型类型

Elm 使用 http 更新模型

Angular 2 - 如何更新模型

如何在Angular中的HTTP POST和DELETE之后更新模型

Angular2 Promise:如何使用Http Get的响应

如何使用angular http更改响应中的键值

使用Angular HttpClient时如何获取错误响应的HTTP状态?

在Angular 9中,如何在http客户端响应模型中强制设置属性日期类型?

如何基于骨干模型的响应来创建/更新骨干视图?

如何在HTTP响应中包含嵌套模型?

骨干集合是否未使用REST响应中的模型更新?

Angular/Firebase:如何将用户响应放入前端模型

如何使用Angular的2+ @ angular / http模块接收Blob响应?

Angular:使用新的http客户端映射HTTP响应

Angular:使用http put请求后如何使用http get请求更新html?

如何保存对模型的响应

Angular Mat-Table:如何使用更新的资源作为响应来刷新数据源?

如何使用POST响应更新Redux存储?

如何使用HTML代码中的预定义参数映射HTTP调用的响应参数-Angular 5

如何使用 angular 8 中的订阅方法等待 http 请求返回响应?

如何使用Dart创建Http响应

如何使用http响应方法读入?

如何使用Koajs发送HTTP响应

Angular 6,Map http对模型的响应

如何使用angularjs更新父模型对象

如何使用Sails JS更新模型

如何使用LINQ更新我的模型代码

如何使用新数据更新SVM模型

如何使用单个表格更新多个模型