- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望通过在变量名称前使用冒号来在路由中包含参数
// dynamic pages for each ITEM, once selected
// from $routeParams.itemID in ItemCtrl
.when('/:itemID', {
templateUrl: 'views/item.html',
controller: 'ItemController'
})
当单击 div 框时,Angular 应路由到特定项目
<div class="itemBox" ng-click="getItem(item._id)">
现在,对 Node/express API 的调用似乎正在工作
[16:36:18.108] GET http://localhost:8080/api/items/534240001d3066cc11000002 [HTTP/1.1 304 Not Modified 4ms]
但是这个错误记录在控制台中:
Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (http.js:691:11)
...
at Promise.<anonymous> (/Users/Username/Downloads/project/v19/app/routes.js:41:8)
...
routes.js 中的第 41 行(41:8?)是 res.json(item);
// load the item model
var Item = require('./models/item');
// get One item
app.get('/api/items/:item_id', function(req, res) {
// use mongoose to get the one item from the database
Item.findById({
_id : req.params.item_id
},
function(err, item) {
// if there is an error retrieving, send the error. nothing after res.send(err) will execute
if (err)
res.send(err)
res.json(item); // return the item in JSON format
});
});
虽然问题可能出在 Controller 中,因为所有其他 API 调用都可以工作。所以我尝试在各处传递 $routeParams!
angular.module('ItemCtrl', [])
// inject the Item service.factory into our controller
.controller('ItemController', function($scope, $routeParams, $http, Items, isEmptyObjectFilter) {
// get an Item after clicking it
$scope.getItem = function(id, $routeParams) {
Items.getOne(id, $routeParams)
// if successful getByID, call our function to get the Item data
.success(function(data, $routeParams) {
// assign our Item
$scope.item = data;
// for use with a parameter in appRoutes.js using itemID as the variable
$scope.itemID = $routeParams.itemID;
})
.error(function(data) {
console.log('Error: ' + data);
});
};
});
或者也许是服务?这是否需要将 $routeParams 作为 function(id, $routeParams) 传递
angular.module('ItemService', [])
// super simple service
// each function returns a promise object
.factory('Items', function($http) {
return {
get : function() {
return $http.get('/api/items');
},
getOne : function(id) {
return $http.get('/api/items/' + id);
},
create : function(itemData) {
return $http.post('/api/items', itemData);
},
delete : function(id) {
return $http.delete('/api/items/' + id);
}
}
});
非常感谢一些调试方面的帮助..谢谢
最佳答案
看起来您正在正确获取数据。问题是你希望在成功获取API调用后改变路由?
$routeParams 不会为您更改路线。那只是获取数据。使用 $location 更改路线。
.controller('ItemController', function($scope, $routeParams, $location, $http, Items, isEmptyObjectFilter) {
$scope.getItem = function(id) {
Items.getOne(id)
.success(function(data) {
$scope.item = data;
$scope.itemID = $routeParams.itemID;
// redirect
$location.path('/' + $routeParams.itemID);
});
});
});
由于您的所有数据似乎都已准备就绪,因此您只需要 Angular 重定向到路线即可。 $location 应该是要走的路。
关于javascript - Angular - $routeParams.itemID 用于加载domain.com/:itemID ALMOST WORKING?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22922682/
我希望通过在变量名称前使用冒号来在路由中包含参数 // dynamic pages for each ITEM, once selected // from $routeParams.itemID i
第一篇文章在这里;) 我需要一些帮助,我正在开发一个约会加载项,但我无法获取当前项目的 itemID。我正在使用 mac os outllok dekstop 客户端(最新版本),我尝试使用: var
我是 Sitecore 新手,对此有一个基本问题。当我创建 Sitecore 项目时,会为此项目创建唯一 ID。如果我在代码中使用此项目 ID 来保存对其的引用,可以吗?从部署到部署这会发生变化吗?
我正在阅读该文档,它指出以 的形式设置别名 'widget.xxx.yyy' 然后 xtype 将自动设置为 'xxx.yyy' 我遇到的问题是我设置了别名和 itemId。看来 item
我如何全局定义(条形码扫描)以便我的所有功能都可以访问它。换句话说,我如何全局定义“metadataObj”? class ScanController: UIViewController, AVCa
我有一个通过 XML 资源定义的菜单。现在我动态地添加一个菜单项 public boolean onCreateOptionsMenu(Menu menu) { MenuInflater in
好的,所以当有人从我的网站购买商品时,需要将该商品 ID 插入数据库,但由于某种原因没有插入。 $mysql_host = 'localhost'; //Leave at localhost $my
在类定义(而不是实例化)上配置 itemId 是一种不好的做法吗? 是否有一些官方文档支持它,或者它只是一个意见问题? 或者,也许我缺少一些逻辑,可以清楚地表明这是一种不好的做法。 Ext.defin
我有一个如下所示的数据框: userid itemid score 1 5 4 2 3 10 1 5 20 2
我拥有一个 DDD/CQRS 应用程序。 我的问题涉及通过 POST(Rest)处理项目创建。 CQRS(基于CQS原则)提倡命令不应该返回值。 那里有查询。 所以我想知道如何处理项目创建的用例。 这
EWS 文档表示,要发送消息并将副本保存到“已发送邮件”文件夹,您应该 use the CreateItem operation with a MessageDisposition value of
我有一个自定义的 sitecore 按钮,它可以更改当前项目的模板,非常简单。 但是,作为其中的一部分,我还尝试将旧布局的渲染迁移到新布局,如果它属于 ItemId 的某个子布局类型| .然而Item
public class ListsSQLiteOpenHelper extends SQLiteOpenHelper { public static final int VERSION = 1; p
我想得到 ItemID From any product url on Amazon for ex. : http://www.amazon.com/gp/product/B0140RDK8W/ref
我在基于 Sencha Touch 2 的应用程序中工作,我有不同的按钮,可能会有不同的徽章文本。我当前在 View 中的代码是: items: [ {
示例 HTML: 示例 CSS: #MenuContainer { /* Styles */ } 如何使用 CSS 来定位 ItemID 而不是常规的 ID? 最佳答案 使用这个代替#Menu
我正在尝试查询vidispine用于一组项目的作业。问题是itemId保存在作业的元数据中。 Filtering over job's metadata是可能的,但我找不到有关一些更高级的过滤器标准及
我目前有一个 Excel 文件,其中一列用于 ItemID,一列用于 ItemName,采用这种样式: ItemID, ItemName 2, Apple 4, Orange 5, Pear 6, B
我有一个这样的窗口类: Ext.define('EMS.tf.alerts.alerts.view.AlertWindow', { extend: 'Ext.window.Window',
我正在尝试摆弄 SenchaCmd 6 在执行 sencha 应用程序生成 时生成的库存应用程序,并且我在侧面菜单选项卡上添加点击事件,如下所示: Ext.define('UserManager.vi
我是一名优秀的程序员,十分优秀!