想象一下,应用程序有一个List页面,例如显示用户列表的表.表格的每一行都有一个名为"编辑"的按钮,点击此按钮后,右侧面板将显示在浏览器的右侧,其中包含用于编辑该用户内容的表单.保存表格或关闭表格时,右侧面板消失.
当进入和退出编辑状态时,如何让Angular UI路由器自动显示/隐藏右侧面板?默认情况下,将添加和删除模板,但容器本身仍将存在于屏幕上.
在UI路由器的演示应用程序中,html布局为所有子状态分配了空白区域,但在我正在构建的应用程序中,如果不使用它们甚至将整个屏幕滑动,我真的很想隐藏它们.在进入和退出状态时输出.我猜我必须使用ng-show和ng-hide才能做到这一点.如何使用UI路由器解决这个问题?
谢谢!
Web应用程序的一个关键组件是面包屑/导航.使用Angular UI路由器,将breadcrumb元数据与各个状态放在一起是有意义的,而不是在控制器中.手动为每个需要它的控制器创建面包屑对象是一项直接的任务,但它也是一个非常混乱的任务.
我已经看到了一些使用Angular的自动面包屑的解决方案,但说实话,它们相当原始.某些状态,如对话框或侧面板不应更新面包屑,但使用角度的当前插件,无法表达.
另一个问题是面包屑的标题不是静态的.例如,如果您转到"用户详细信息"页面,则面包屑标题应该是用户的全名,而不是通用的"用户详细信息".
需要解决的最后一个问题是使用父链接的所有正确的状态参数值.例如,如果您正在查看公司的用户详细信息页面,显然您会想知道父状态需要一个:companyId.
是否有角度的插件可以提供这种级别的面包屑支持?如果没有,最好的方法是什么?我不想让我的控制器混乱 - 我会有很多 - 我希望尽可能自动化和无痛.
谢谢!
假设我有以下3个Angular UI路由器状态:
$stateProvider
.state('adminCompanies', {
abstract: true,
url: "/admin/companies",
template: '<div ui-view class="viewContainer" autoscroll="false" />'
})
.state('adminCompanies.list', {
url: "",
templateUrl: 'app/admin/companies/companies.list.html',
controller: 'AdminCompaniesController'
})
.state('adminCompanies.detail', {
url: "/:companyId",
templateUrl: 'app/admin/companies/companies.detail.html',
resolve: {
company: function(Model, $stateParams) {
return Model.get("/admin/companies", $stateParams.companyId);
}
},
controller: 'AdminCompanyDetailController'
})
Run Code Online (Sandbox Code Playgroud)
如果adminCompanies转换为直接转换,我如何告诉Angular UI Router转到adminCompanies.list状态?
理想情况下,我想要的是:
$stateProvider.when('adminCompanies', 'adminCompanies.list');
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我希望$ state.go('adminCompanies')等同于$ state.go('adminCompanies.list')
我正在考虑使用Scala而不是常规Java(或者我猜的等价物)在Android上构建应用程序.这值得么?
有什么问题和不必要的麻烦吗?
假设我们在$ stateProvider中定义了一个父子关系,如下所示:
.state('myProfile', {
url: "/my/profile",
templateUrl: 'my/profile.html',
controller: 'MyProfileController'
}).state('myProfile.edit', {
url: "/edit",
templateUrl: 'my/profile.edit.html',
controller: 'EditMyProfileController'
});
Run Code Online (Sandbox Code Playgroud)
这里的想法是父myProfile状态是不可编辑的,但子myProfile.edit状态是编辑配置文件的实际形式.让我们忽略,如果这是个人资料页面的工作方式 - 我只是在玩弄东西和学习.
当用户提交表单时,我使用$ state对象返回父页面:
$scope.save = function() {
userResource.update($scope.user, function() {
SessionService.refresh();
$state.go('myProfile'); // also tried with reload: true as well
});
}
Run Code Online (Sandbox Code Playgroud)
之后,用户保存配置数据-这是得到正确保存-父母的观点并没有得到更新,除非我打了F5并刷新浏览器.
我注意到的一件事是,如果我将子myProfile.edit状态变为父本身而不是状态的子节点myProfile,这个问题实际上消失了,事情就像预期的那样(虽然布局看起来很糟糕).
似乎UI路由器可能会缓存父级的结果,不知道模型中的内容已经发生变化,是否需要重新运行控制器?
如何在父myProfile页面始终执行其控制器以重新加载其数据的同时保持父子关系?基本上,我希望无论何时$state使用或点击链接指向时都会发生这种情况myProfile.我怎样才能做到这一点?
如果我不能按照我的要求做,那么我知道我可以设置一堆子状态并让它们按预期工作......但是,如何为父设置默认子状态?例如,假设我想myProfile.edit成为默认的子状态myProfile- 我该怎么做?
谢谢!
我整天都在使用spork,大部分时间它都非常棒.
但是,我经常遇到一些问题,我需要重新启动Spork以便我的测试通过......现在我想知道它是否比它的价值更麻烦.我是ruby的新手,所以有时我无法预测错误是由于刷新问题,还是因为我不熟悉Ruby和Rails而导致错误.
我需要将什么内容放入Spork.each_run块中,以便我的验证和其他内容被刷新,这样我就不必重新启动spork服务器了?
谢谢
我有一个控制器动作,我认为应该是一个HTTP PUT,但是当我尝试在控制器动作中使用@RequestParam时,Spring正在抱怨.HTTP PUT方法不允许使用请求参数,这就是Spring拒绝它的原因吗?
@RequestMapping(value = "/{helpDocumentId}/vote", method = RequestMethod.PUT)
public void voteHelpfulness(@PathVariable long helpDocumentId, @RequestParam boolean isHelpful) {
helpManager.voteOnHelpDocument(helpDocumentId, isHelpful);
}
Run Code Online (Sandbox Code Playgroud)
执行时,它会抛出此错误:
org.springframework.web.bind.MissingServletRequestParameterException: Required boolean parameter 'isHelpful' is not present
Run Code Online (Sandbox Code Playgroud)
当然,isHelpful参数IS存在.我可以使上面的代码完美地用于HTTP POST,所以我知道这不是问题.
$.ajax({
url: "/help/" + helpDocumentId + "/vote.json",
type: "PUT",
data: {
isHelpful: isHelpful
},
success: function(response) {
// ....
}
});
Run Code Online (Sandbox Code Playgroud)
PUT是正确的http方法吗?此操作会修改helpDocument,但不会创建一个.
可能重复:
git中标记和分支之间有什么区别?
我想做的是为我的代码的不同版本创建检查点.所以,一旦我做了一堆提交,我想说,"好的,在代码的这一点,这是完成版本0.1".然后我可以做更多的提交并再次做,并说,"好的,这一点是0.2完成".
我知道如何制作一个分支和一个标签......我只是不明白其中的区别,哪一个会做我想要的;)
谢谢
我有一个相当大的应用程序,Spring启动时间大约是20秒.对于生产用途,这很好,但对于开发来说,这是一个很大的痛苦.
什么是一个很好的分析工具或方法,可以准确地提供我需要的信息,以弄清楚这么长的时间?也许这是我可以优化的东西?
我的应用程序是一个相当典型的spring/hibernate Web应用程序.大概有50个数据库表和几百个bean(比如200-300 ......我没算数).有一些@Configurable bean.大量的组件扫描.我也在使用Spring Security.
我用log4j做了一些原始的分析 - 只是在INFO设置.以下是一些需要花费一些时间的事情:
有几件事最多需要0.5到1秒,但这3件是最大的.
angularjs ×4
javascript ×4
angular-ui ×3
java ×2
spring ×2
android ×1
branch ×1
breadcrumbs ×1
dbunit ×1
git ×1
http ×1
http-put ×1
jquery ×1
junit ×1
optimization ×1
parent-child ×1
performance ×1
profiling ×1
rest ×1
rspec ×1
scala ×1
spork ×1
spring-mvc ×1
state ×1
tags ×1
testing ×1
validation ×1