Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Angular调用ajax并从返回中填充内容(在页面已经呈现之后)_Javascript_Angularjs_Ajax - Fatal编程技术网

Javascript 如何使用Angular调用ajax并从返回中填充内容(在页面已经呈现之后)

Javascript 如何使用Angular调用ajax并从返回中填充内容(在页面已经呈现之后),javascript,angularjs,ajax,Javascript,Angularjs,Ajax,我是一名后端API开发人员,刚接触AngularJS(version 1),这就是我当前任务的编写内容 该页面在标记中找到了ng app=“app”,并且ng controller=“BaseController as baseCtrl”,呈现效果很好 从这里开始,有一块(当前为服务器端)内容需要由ajax、post-render调用,因为它的源代码不可靠,有时速度较慢。我已经编写了API URL来返回内容,例如 {“状态”:“OK”,“id”:“feed whatsnew”,“内容”:“不可靠

我是一名后端API开发人员,刚接触AngularJS(version 1),这就是我当前任务的编写内容

该页面在标记中找到了
ng app=“app”
,并且
ng controller=“BaseController as baseCtrl”
,呈现效果很好

从这里开始,有一块(当前为服务器端)内容需要由ajax、post-render调用,因为它的源代码不可靠,有时速度较慢。我已经编写了API URL来返回内容,例如

{“状态”:“OK”,“id”:“feed whatsnew”,“内容”:“不可靠的源!”}

我的问题是,如何使用Angular将上面的“内容”填充到
的内容部分位置,并取消隐藏
输入新内容


到目前为止,角度渲染对我来说是有意义的,但像这样的任何辅助过程仍然是不透明的。我知道我在jQuery中会如何处理它,但我不想试图简单地“模仿”一个库而不是真正实现Angular框架。

在Angular中,您可以使用
$http
-提供程序使用ajax调用外部API。下面是一个你将如何做到这一点的例子

app.controller('BaseController',['$http', function($http){
    var vm = this;
    vm.content = {};

    vm.fetchContent = function(){
        return $http.get('/my-api-endpoint').then(function(response){
            vm.content = response.data;
        }, function(response){
            console.error('Failed calling /my-api-endpoint ', response);
        });
    };

    // Initiallly load content
    vm.fetchContent();
}]);
$http.get(…)
start的调用是对给定外部url的异步调用,并返回一个名为。异步调用完成后,此承诺将解析,它将使用
then([callback])
执行传递给该承诺的回调。然后,此回调使用响应中传递的数据填充控制器中的
vm.content
变量

您可以在中阅读有关
$http
提供程序的更多信息

当您希望在某处呈现内容时,可以执行以下操作:

<span>{{baseCtrl.content}}</span>
{{baseCtrl.content}
尽管这一部分在很大程度上取决于您所呈现的内容


您可能应该将
fetchContent()
函数分离为角度服务,但这是一个完全不同的主题

在angular中,您可以使用
$http
-提供程序使用ajax调用外部API。下面是一个你将如何做到这一点的例子

app.controller('BaseController',['$http', function($http){
    var vm = this;
    vm.content = {};

    vm.fetchContent = function(){
        return $http.get('/my-api-endpoint').then(function(response){
            vm.content = response.data;
        }, function(response){
            console.error('Failed calling /my-api-endpoint ', response);
        });
    };

    // Initiallly load content
    vm.fetchContent();
}]);
$http.get(…)
start的调用是对给定外部url的异步调用,并返回一个名为。异步调用完成后,此承诺将解析,它将使用
then([callback])
执行传递给该承诺的回调。然后,此回调使用响应中传递的数据填充控制器中的
vm.content
变量

您可以在中阅读有关
$http
提供程序的更多信息

当您希望在某处呈现内容时,可以执行以下操作:

<span>{{baseCtrl.content}}</span>
{{baseCtrl.content}
尽管这一部分在很大程度上取决于您所呈现的内容


您可能应该将
fetchContent()
函数分离为角度服务,但这是一个完全不同的主题

AngularJS附带了强大的
$http
库来执行ajax。请浏览网站上提供的相对简单的文档

以下是逻辑步骤

  • 在控制器依赖项中注入
    $http
  • 通过$http进行服务调用
  • 成功后,将响应分配给$scope变量以使 它可用于UI/html标记。如果在标记中使用控制器
    作为
    ,则分配将有所不同
  • angular.module('app',[])
    .controller('BaseController',函数($http){
    var vm=这个;
    vm.feed=null;
    _getDataFromServer();
    函数_getDataFromServer(){
    var req={
    网址:'https://jsonplaceholder.typicode.com/posts/1',
    方法:“GET'//可以是post/put等
    //数据:someJson——如果webservice需要
    };
    $http(请求)
    .然后(功能(响应){
    vm.feed=response.data;
    }).catch(函数(err){
    log('发生了一些错误!',err);
    });
    }
    });
    
    
    使用$http

    来自Ajax响应的标题:{{vm.feed.Title} 内容:


    AngularJS附带了强大的
    $http
    库来执行ajax。请浏览网站上提供的相对简单的文档

    以下是逻辑步骤

  • 在控制器依赖项中注入
    $http
  • 通过$http进行服务调用
  • 成功后,将响应分配给$scope变量以使 它可用于UI/html标记。如果在标记中使用控制器
    作为
    ,则分配将有所不同
  • angular.module('app',[])
    .controller('BaseController',函数($http){
    var vm=这个;
    vm.feed=null;
    _getDataFromServer();
    函数_getDataFromServer(){
    var req={
    网址:'https://jsonplaceholder.typicode.com/posts/1',
    方法:“GET'//可以是post/put等
    //数据:someJson——如果webservice需要
    };
    $http(请求)
    .然后(功能(响应){
    vm.feed=response.data;
    }).catch(函数(err){
    log('发生了一些错误!',err);
    });
    }
    });
    
    
    使用$http

    来自Ajax响应的标题:{{vm.feed.Title} 内容:


    您看过这个吗?你看过这个吗?我从另一个开发者那里得到反馈,这是最好的方法。谢谢只是想知道对
    vm
    首字母缩略词的理解是什么。虚拟机?(只是一个猜测:)=似乎是一个编码约定。哈哈@OliverWilliams是引用视图模型的约定:)我从另一个开发人员那里得到反馈,这是最好的方式。谢谢只是想知道对
    vm
    首字母缩略词的理解是什么。虚拟机?(只是猜测:)=似乎