MEAN.JS 如果 link 在新 tab/window 中打开,则视图不显示
MEAN.JS view does not show if link open in new tab/window
框架: MEAN.JS v.0.4.2
我使用 YO 生成器创建了新的 "orders" 模块。 orders.list
和 orders.view
都可以正常工作。我可以浏览orders.list
状态直接使用urlDOMAIN/orders
但是我不能浏览orders.view
状态直接使用 url 例如 DOMAIN/orders/id123
。没有错误,但页面是空的。这是我的路由配置文件:
(function () {
'use strict';
angular
.module('orders')
.config(routeConfig);
routeConfig.$inject = ['$stateProvider'];
function routeConfig($stateProvider) {
$stateProvider
.state('orders', {
abstract: true,
url: '/orders',
template: '<ui-view/>'
})
.state('orders.list', {
url: '',
templateUrl: 'modules/orders/client/views/list-orders.client.view.html',
controller: 'OrdersListController',
controllerAs: 'vm',
resolve: {
orderResolve: getOrders
},
data: {
pageTitle: 'Orders List'
}
})
.state('orders.create', {
url: '/create',
templateUrl: 'modules/orders/client/views/form-order.client.view.html',
controller: 'OrdersController',
controllerAs: 'vm',
resolve: {
orderResolve: newOrder
},
data: {
pageTitle: 'Orders Create'
}
})
.state('orders.edit', {
url: '/:orderId/edit',
templateUrl: 'modules/orders/client/views/form-order.client.view.html',
controller: 'OrdersController',
controllerAs: 'vm',
resolve: {
orderResolve: getOrder
},
data: {
pageTitle: 'Edit Order {{ orderResolve.name }}'
}
})
.state('orders.view', {
url: '/:orderId',
templateUrl: 'modules/orders/client/views/view-order.client.view.html',
controller: 'OrdersController',
controllerAs: 'vm',
resolve: {
orderResolve: getOrder
},
data: {
pageTitle: 'Order Details {{ orderResolve.name }}'
}
});
}
getOrder.$inject = ['$stateParams', 'OrdersService'];
function getOrder($stateParams, OrdersService) {
return OrdersService.get({orderId: $stateParams.orderId}).$promise;
}
newOrder.$inject = ['OrdersService'];
function newOrder(OrdersService) {
return new OrdersService();
}
}());
请在错误日志中查找错误。我发现视图文件丢失错误。在模板开头加一个斜杠 url 可以解决这个问题。例如:
templateUrl: '/modules/orders/client/views/...',
框架: MEAN.JS v.0.4.2
我使用 YO 生成器创建了新的 "orders" 模块。 orders.list
和 orders.view
都可以正常工作。我可以浏览orders.list
状态直接使用urlDOMAIN/orders
但是我不能浏览orders.view
状态直接使用 url 例如 DOMAIN/orders/id123
。没有错误,但页面是空的。这是我的路由配置文件:
(function () {
'use strict';
angular
.module('orders')
.config(routeConfig);
routeConfig.$inject = ['$stateProvider'];
function routeConfig($stateProvider) {
$stateProvider
.state('orders', {
abstract: true,
url: '/orders',
template: '<ui-view/>'
})
.state('orders.list', {
url: '',
templateUrl: 'modules/orders/client/views/list-orders.client.view.html',
controller: 'OrdersListController',
controllerAs: 'vm',
resolve: {
orderResolve: getOrders
},
data: {
pageTitle: 'Orders List'
}
})
.state('orders.create', {
url: '/create',
templateUrl: 'modules/orders/client/views/form-order.client.view.html',
controller: 'OrdersController',
controllerAs: 'vm',
resolve: {
orderResolve: newOrder
},
data: {
pageTitle: 'Orders Create'
}
})
.state('orders.edit', {
url: '/:orderId/edit',
templateUrl: 'modules/orders/client/views/form-order.client.view.html',
controller: 'OrdersController',
controllerAs: 'vm',
resolve: {
orderResolve: getOrder
},
data: {
pageTitle: 'Edit Order {{ orderResolve.name }}'
}
})
.state('orders.view', {
url: '/:orderId',
templateUrl: 'modules/orders/client/views/view-order.client.view.html',
controller: 'OrdersController',
controllerAs: 'vm',
resolve: {
orderResolve: getOrder
},
data: {
pageTitle: 'Order Details {{ orderResolve.name }}'
}
});
}
getOrder.$inject = ['$stateParams', 'OrdersService'];
function getOrder($stateParams, OrdersService) {
return OrdersService.get({orderId: $stateParams.orderId}).$promise;
}
newOrder.$inject = ['OrdersService'];
function newOrder(OrdersService) {
return new OrdersService();
}
}());
请在错误日志中查找错误。我发现视图文件丢失错误。在模板开头加一个斜杠 url 可以解决这个问题。例如:
templateUrl: '/modules/orders/client/views/...',