【问题标题】:Failed to append after $http .then()$http .then() 后无法追加
【发布时间】:2018-05-01 05:49:34
【问题描述】:

您好,我正在使用 Angular js $http 获取 json 数据

json 数据

  {"Data":["index":[{"Name":"append_here_1"},{"Name":"append_here_2"}]]}

App.js

var app=Angular.module('app',[]);

请求.js

app.service('Request_service', function() {
      this.get_json=function(){
        return $http.post('http://...', {
            params_1: "123",
            params_2: "abc"
        }).then(function success(e) {
          return e.data;
        },function fail(e){
          return false;
        });
       }
});

Controller.js

$scope.index_data=[];
app.controller('myCtrl', function($scope, Request_service) {
Request_service.get_json().then(function(data)
     $scope.index_data=data.Data[0].index;  

     for(var i=1;i<3;i++){ 
                         var id_data="#append_here_"+i;
                        $(id_data).append('<input value="'+i+'">');                                                                                            

                     }
                );
}); 

模板.html

<body ng-app="app">
   <div ng-controller="myCtrl">
      <div ng-repeat="obj in index_data ">

        // {{index_data.Name}}  = append_here_1
        <div id="{{index_data.Name}}">

         </div>

      <div> 

问题是当控制器加载它没有附加的数据时

 <div id="append_data_1">
 </div>

 <div id="append_data_2">
 </div>

它应该是什么样子

  <div id="append_data_1">
  <input value="1">
  <input value="2">
  </div>      

  <div id="append_data_2">
  <input value="1">
  <input value="2">
  </div>

如果有人可以改进此代码将不胜感激

提前谢谢你

【问题讨论】:

  • 只使用 ng-repeat

标签: javascript jquery html angularjs


【解决方案1】:

修改此函数声明

function get_json () {
  var deferred = $q.defer();
  $http.post('http://...', { 
        params_1: "123",
        params_2: "abc"
   })
    .success(function (result) {
      deferred.resolve(result.data);
    })
    .error(function (error) {
      deferred.reject(error);
    });

  return deferred.promise;
}

并修改你的html代码

<div ng-repeat="obj in index_data ">

    // {{obj.Name}}  = append_here_1
    <div id="{{obj.Name}}">
        {{obj.Name}}
    </div>

<div>

【讨论】:

    猜你喜欢
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 2020-09-26
    • 2021-02-23
    • 1970-01-01
    • 1970-01-01
    • 2017-03-15
    相关资源
    最近更新 更多