在此之前,旧页面仍然会继续显示(例如,如果我正在浏览另一个页面,然后决定看到这个项目索引)。
$RouteProvider解析属性允许延迟路由更改,直到加载数据。
首先定义具有resolve
属性的路由,如下所示。
angular.module('phonecat', ['phonecatFilters', 'phonecatServices', 'phonecatDirectives']).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/phones', {
templateUrl: 'partials/phone-list.html',
controller: PhoneListCtrl,
resolve: PhoneListCtrl.resolve}).
when('/phones/:phoneId', {
templateUrl: 'partials/phone-detail.html',
controller: PhoneDetailCtrl,
resolve: PhoneDetailCtrl.resolve}).
otherwise({redirectTo: '/phones'});
}]);
请注意,resolve
属性是在route上定义的。
function PhoneListCtrl($scope, phones) {
$scope.phones = phones;
$scope.orderProp = 'age';
}
PhoneListCtrl.resolve = {
phones: function(Phone, $q) {
// see: https://groups.google.com/forum/?fromgroups=#!topic/angular/DGf7yyD4Oc4
var deferred = $q.defer();
Phone.query(function(successData) {
deferred.resolve(successData);
}, function(errorData) {
deferred.reject(); // you could optionally pass error data here
});
return deferred.promise;
},
delay: function($q, $defer) {
var delay = $q.defer();
$defer(delay.resolve, 1000);
return delay.promise;
}
}
问题内容: 有没有办法推迟或延迟摘要的发生? 我想对模型进行一堆更改,但是在对模型进行所有更改之前,我不希望摘要触发。模型上的某些对象具有观察者,这些观察者可以更新模型上的其他对象以进行更改。 理想情况下,我想 停止$ digest 对模型进行所有更改 开始$ digest $ digest将发现所有脏物并解雇观察员。 另一个解决方案是,我可以停止$ digest,而不是停止 删除观察者 对模型进
问题内容: 感谢Dan Wahlin的精彩文章,我设法实现了Angular的控制器和服务的延迟加载。但是,似乎没有一种干净的方法来懒惰加载独立的模块。 为了更好地解释我的问题,假设我有一个没有RequireJS的应用,其结构如下: 这是在Plunker中带有RequireJS的示例应用程序:http ://plnkr.co/aiarzVpMJchYPjFRrkwn 问题的核心是Angular不允许
不确定我是否做对了一切。但问题是:当我从延迟加载的模块导航到组件的某些子路由时,它根本不加载。它从延迟加载模块重新加载主组件。 app-routing.component.ts planet-detector-routeting.module.ts 所以在上面的例子中,当你输入“http://localhost:4200/planet-detector/first”时,它会加载DetectorCo
我目前面临的问题是如何处理聚合中实体之间的关联。 考虑以下示例: 现在,我们有一个,User“实体,也是我的聚合根。他可以有一个,Product”和多个,别名。我现在需要的是检索相关的,Product和,,域模型中的“按需别名”。用户由UserFactory创建,当从持久性数据创建实体时,可以单独使用,也可以在UserRepository中使用。 这样做的原因是因为我们的业务逻辑(如您在示例中看到
问题内容: 我正在使用Spring事务,因此当POJO到DTO转换时,该事务仍然处于活动状态。 我想防止Dozer触发延迟加载,以使隐藏的sql查询永远不会发生:所有获取都必须通过HQL显式完成(以获得对性能的最佳控制)。 这是一个好习惯吗(我在任何地方都找不到它)? 如何安全地做? 我在DTO转换之前尝试了这个: 我不知道事务会发生什么,但是Hibernate会话不会关闭,并且仍然会发生延迟加载
为了显示这种关系,让我们开始定义一个简单的模块,作为我们的示例应用程序的根模块。 app/app.module.ts 到目前为止,这是一个非常常见的模块,依赖于,有一个路由机制和两个组件:AppComponent和EagerComponent。 现在,让我们专注于定义导航的应用程序(AppComponent)的根组件。 app/app.component.ts import { Component