从express到angularJS公开一个对象
我想创build一个数据对象,通过在angular度控制器中可用的快速检索。 现在我可以使用数据对象在一个玉的模板,如果我访问它如此…
#{data.mens.pants.jeans}
快速代码
api.get(query, options) .then(function(results) { log.info('api response received. rendering...'); res.render('../mens/views/index', { data: { query: query, item: results } }); }) .error(function(err) { errors.renderError(res, err); }); });
我不想要的
- 做另一个$ http呼叫
- 使用ng-init
我试过使用.constant(),但一个常量只能包含一个string。
如何在angular度控制器内部提供一个可用的对象。
在此先感谢您的时间。
让我来解释一下你的整个往返行程,正确的请求来自angular度来表示,并将回应发送回angular度。
而不是res.render(..) ,您应该使用res.json(..)将数据发送回angular客户端。 如果你想使用承诺是好的,但我下面的例子是简单的callback。
api.get = function(req,res){ //use req.params.<param_name> to get the parameter passed from angular. <some model>.someMethod({.params..},function(err,results){ if(err){ res.send(err); } res.json(results); }); };
假设您已经为上面的代码定义了合适的路线,并且使用http:// localhost:3000 / api / data /:id
因此,在前端Angular中,您可以使用$ resource或$ http服务在您需要数据时调用您的后端API。
var module = angular.module('app.services',['ngResource']); module.factory('MyABCService',function($resource){ return $resource('api/data/:id', { id: '@id' }, { 'update': { method:'PUT' } }, { 'get': { method: 'GET', isArray: false } }, { 'delete': { method: 'DELETE'} } ); });
现在在angular度控制器中创build方法来从API中获取数据。
$scope.searchABC = function(_id){ $scope.myABCService = new MyABCService(); $scope.myABCService.$get({id:_id},function(result){ //now AngularJS has two way data binding, so use result to assign values to your scope variables. }); }
让我知道如果你需要更详细的答案。
- 用于Node.js或Javascript库的DWG转换器
- 使用量angular器+ Appium + SauceLabs
- 在Chrome Mac中无法打开AngularJS教程
- 节点js,生成dist文件夹,html页面包含链接不工作
- 在OS X上的Angular 2教程El Capitan在浏览器中返回“Can not GET /”
- 量angular器JS预处理器
- Angular问题和“否”Access-Control-Allow-Origin'标题“ – 使用OAuth 2,Passport,Express和Node
- 使用Angular.js和Node.js构build实时应用程序的更好方法是什么?
- 如何将文件从节点jsstream式传输到angular度js