我正在尝试向我的应用程序中的每个状态添加一个解析器函数,以便等待应用程序的"启动"过程完成.我已经有以下代码:
angular.forEach($state.get(), function(state) {
state.resolve = state.resolve || {};
state.resolve.session = function() {
return SessionResolver.handle(state);
}
});
Run Code Online (Sandbox Code Playgroud)
SessionResolver是一个服务,其中handle(state)函数返回一个在启动过程完成后解析的promise.
除非定义了没有现有resolve对象的状态,否则这样可以正常工作.例如,以下状态将阻塞,直到SessionResolver.handle承诺解析:
$stateProvider.state('dashboard', {
url: "/",
templateUrl: "dashboard.html",
controller: "DashboardCtrl",
resolve: {}
});
Run Code Online (Sandbox Code Playgroud)
但是如果未设置resolve对象,则状态不会阻塞:
$stateProvider.state('dashboard', {
url: "/",
templateUrl: "dashboard.html",
controller: "DashboardCtrl",
});
Run Code Online (Sandbox Code Playgroud)
我宁愿不resolve向我的每个状态添加一个空对象,因为我也可以在它处理时将SessionResolver.handle解析函数添加到它们.
除非解析对象已经存在,否则任何想法为什么动态地将解析函数添加到状
我正在Rails中构建一个自定义的表单生成器,我一直在关注这个伟大的Rails Cast视频(http://railscasts.com/episodes/311-form-builders?view=asciicast).
Ryan使用这样的一行:
<%= form_for @project, builder: BootstrapFormBuilder do |f| %>
Run Code Online (Sandbox Code Playgroud)
但是在1.8.7之下,这会出现一个含糊不清的错误消息.
Ruby 1.9.3中的变化使得现在可以使用了吗?
顺便说一句,下面就在1.8.7工作,但为什么呢?
<%= form_for(@project, :builder => BootstrapFormBuilder) do |f| %>
Run Code Online (Sandbox Code Playgroud)