执行以下操作时是否有一些解释:
location.hash = "#/";
它在 Firefox (19.0.2) 中运行良好,但在 IE (10.0.92) 中运行良好。
在 Firefox 中它返回到“主页”,而在 IE 中它什么也不做。也没有显示错误。
此代码来自此函数:
self.addStoreItem = function () {
var data = appFsMvc.utility.serializeObject( $("#StoreItemForm") );
$.ajax({
url: "/api/StoreItems",
data: JSON.stringify( data ),
type: "POST",
dataType: "json",
contentType: "application/json"
})
.done(function () {
toastr.success( "You have successfully created a new StoreItem!", "Success!" );
self.StoreItems.push(data);
location.hash = "#/";
})
.fail(function () {
toastr.error( "There was an error creating your new StoreItem", "<sad face>" );
});
};
以及管理 sammy.js 的代码:
appFsMvc.App = function( StoreItemsViewModel ) {
return $.sammy( "#content", function () {
var self = this;
this.use( Sammy.Cache );
this.StoreItemViewModel = StoreItemsViewModel;
this.renderTemplate = function ( html ) {
self.$element().html( html );
ko.applyBindings( self.StoreItemViewModel );
};
// display all StoreItems
this.get( "#/", function() {
this.render("/Templates/StoreItemDetail.htm", {}, function ( html ) {
self.renderTemplate( html );
});
});
// display the create StoreItems view
this.get( "#/create", function() {
this.render("/Templates/StoreItemCreate.htm", {}, function ( html ) {
self.renderTemplate( html );
});
});
});
};
我曾尝试使用 firbuglite,但是当我尝试在我的网站上使用它时,后者最终会崩溃。IE 的开发者工具不显示任何错误。
[编辑]
找到了如何使用getfirebug.com/firebuglite#Debug而不是稳定版本来启用 firebuglite:
控制台给了我这些提示:
- 单击 CreateNewItem 时
[2013 年 3 月 21 日星期四 15:38:11 UTC+0100] #content runRoute get /#/create
GET /Templates/StoreItemCreate.htm 200 OK 5ms
POST /api/StoreItems 200 OK 7ms
而在 Firefox 中做同样的事情给了我:
[2013 年 3 月 21 日星期四 15:40:41 GMT+0100] #content runRoute get /#/create
GET http://myLocalHost:9501/Templates/StoreItemCreate.htm 200 OK 1ms
POST http://myLocalHost:9501/api/StoreItems 200 OK 27ms
[2013 年 3 月 21 日星期四 15:40:46 GMT+0100] #content runRoute get /#/
我可以在 IE 中看到地址栏中的 url在发布我的表单后给出正确的 url http://localhost:9501/#/create然后http://localhost:9501/#/ 。[/编辑]