javascript - Angular 1/ui-router - 将函数执行到数据对象中

标签 javascript angularjs angular-ui-router angular-routing

我想运行一个将字符串返回到 data 对象的方法。

例如,如果该方法返回的结果是:“Richard Stallman”,我希望在我的 Controller 上使用:this. $state.current.data.title 等于“Richard Stallman” 就像我只是这样做一样:

  data: {
    title: "Richard Stallman"
  }

我的状态:

.state({
  name: 'agent.production.myiad.project.detail.edit.headers.overlay.comment',
  url: '/comment',
  data: {
    title: (project, IadProjectUtilService) => {
            IadProjectUtilService.getProjectName(project) 
      }
  },
  component: 'iadAgentMyIadComment'
})

最佳答案

这通常通过 resolve block 来解决。

.state({
  name: 'agent.production.myiad.project.detail.edit.headers.overlay.comment',
  url: '/comment',
  resolve: {
    title: (project, IadProjectUtilService) => {
            IadProjectUtilService.getProjectName(project) 
      }
  },
  component: 'iadAgentMyIadComment'
});

...

uirouter 将等待 IadProjectUtilService.getProjectName(project) 返回的 Promise,然后将其绑定(bind)到组件的 title 绑定(bind)。

.component('iadAgentMyIadComment', {
  bindings: { title: '<' },
  controller: IadAgentMyIadCommentController,
});

以下是有关路由到组件的指南:https://ui-router.github.io/guide/ng1/route-to-component#resolve-bindings

关于javascript - Angular 1/ui-router - 将函数执行到数据对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46449911/

相关文章:

javascript - 如何将 Controller 变量作为 AngularJS $resource 请求的参数传递?

javascript - Angular uiRouter 在新窗口或带有 stateParams 的选项卡中打开状态

javascript - AngularJS 路由器在最初加载特定 URL 时调用函数

javascript - 如何从控制台获取 ui 路由器的 $state 对象?

javascript - es6类变量无法读取(无法读取未定义的属性 '...')

javascript - 不可变地更新对象列表中的对象列表

javascript - Angular.js + PHP : angular expression not executed if inside a ngSanitized html template

javascript - 尝试在单击图表时生成弹出窗口。弹出的是一个关闭按钮

javascript - 获取 sql 值并放入 chart.js

javascript - 为什么 .each 与 jQuery 选择器一起使用,然后又与 $(this) 一起使用