小编Ros*_*son的帖子

Angular ui-router动态地将解析函数添加到所有状态

我正在尝试向我的应用程序中的每个状态添加一个解析器函数,以便等待应用程序的"启动"过程完成.我已经有以下代码:

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解析函数添加到它们.

除非解析对象已经存在,否则任何想法为什么动态地将解析函数添加到状

javascript angularjs angular-ui-router

4
推荐指数
1
解决办法
1754
查看次数

为什么这在Ruby 1.9.3下工作而不在1.8.7下?

我正在Rails中构建一个自定义的表单生成器,我一直在关注这个伟大的Rails Cast视频(http://railscasts.com/episodes/311-form-b​​uilders?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)

ruby ruby-on-rails

0
推荐指数
1
解决办法
673
查看次数