【发布时间】:2014-09-08 10:20:21
【问题描述】:
我正在使用 Node、Express、Mongoose 和 Angular 编写应用程序。我可以在一个页面上显示所有项目。我的下一步是为数据库中的项目编写单独的页面,因此我创建了路线:
app.get '/products/:product_id', (req, res) ->
Product.findById req.params.product_id, (err, product) ->
res.send(err) if (err)
res.render('product.html', { name: product.name } )
return
return
一切都很酷,我可以在 product.html 中使用 显示名称,但 Angular 不起作用。没有 '/:product_id' 工作。 这是我获得所有产品的途径:
app.get '/api/products', (req, res) ->
Product.find (err, products) ->
if (err)
res.send(err)
res.json(products); # return all products in JSON format
return
return
在正面:
$http.get('/api/products')
.success (data) ->
$scope.products = data
console.log(data)
return
.error (data) ->
console.log('Error: ' + data)
return
那么,我如何编写应用程序,在其中我转到http://mydomain.com/products/53c68728c7e5a5381a000002 然后会显示一项? (53c68728c7e5a5381a000002 是 id)
【问题讨论】:
-
我对 MEAN 的处理方式相当陌生,但从逻辑上思考,如果 Angular 在您的路由上执行 HTTP GET 并且它在技术上返回渲染 html,那不会搞砸?例如:您正在使用数据呈现页面。使用 Angular,您在页面被渲染到返回 html 的同一路由后向路由发出请求。您可能应该设置您的 products/:product_id 类似于您的 api/products,然后当您渲染角度时,让它请求 api/products/:product_id。
-
但是如何发送到 angular id?当我输入 www.domain.com/products/643284 时,angular 怎么知道,id 是 643284?
标签: node.js angularjs express coffeescript mongoose