当前位置: 首页 > 面试题库 >

AngularJS UI-Router从视图中获取当前状态

习淇
2023-03-14
问题内容

考虑从ui-router文档获取的以下状态:

.state('state1', {
  url: '/state1',
  templateUrl: 'partials/state1.html'
  controller: 'State1Ctrl'
})
.state('state1.list', {
  url: '/list',
  templateUrl: 'partials/state1.list.html',
})

以及状态“ state1”的“ partials / state1.html”控制器:

.controller('State1Ctrl', function () {

});

是否有任何内置功能可从控制器内部或模板内部确定控制器/模板与哪个状态关联?

例如:

.controller('State1Ctrl', function ($state) {
  console.log($state.this); // state1
});

而且,如果没有内置解决方案,您将如何“装饰” $ state或$ stateParams以包含此信息?

我想出的唯一解决方案是使用$ state.get(),然后使用控制器或模板值查找状态。但是,这似乎令人难以置信。


问题答案:

在任何地方都找不到此文档,因此我查看了源代码。

ui-view元素上附加了一个名为$ uiView的数据字段,其中包含视图名称和关联的状态。您可以这样获得此状态:

elem.closest('[ui-view]').data('$uiView').state

甚至

elem.inheritedData('$uiView').state


 类似资料:
  • 问题:如何获取ViewPager FragmentStatePagerAdapter的当前视图? > 我在这方面花了将近24小时,到处寻找合适的解决方案。 得到目前的位置很容易,我已经得到了。这是获取当前视图。 是必需的,而不是。 此解决方案通过建议setTag和findViewWithTag。这是用于PagerAdapter的。 但是,在中,instantiateItem有一个ViewGroup

  • 我正在开发一个Android视频应用程序,我需要在暂停模式下获取当前显示的视频帧号。 我需要向我的服务器发送当前在视频中暂停的帧号,并返回关于该帧/时间的项目列表,现在我正在以毫秒为单位发送当前暂停的时间,但它不能很好地工作,因为服务器比较发送到它计算出具体的帧,基于时间,但有时比较并不精确。 我知道如果你使用MediaMetaDataRetriever,你可以从那个帧中得到一个位图,我做到了,但

  • ap.getNetworkType(OPTION, CALLBACK) 获取当前网络状态。 CALLBACK 参数说明 名称 类型 描述 networkAvailable Boolean 网络是否可用 networkType String 网络类型值 UNKNOWN / NOTREACHABLE / WIFI / 3G / 2G / 4G / WWAN 代码示例 <script src="http

  • 问题内容: 我想显示在以某种方式从目前的路线通过。 在React Router v4中,如何将当前路由传递到prop中? 有没有办法通过从自定义自定义标题上? 问题答案: 在5.1版本的react-router中,有一个名为 useLocation 的钩子,该钩子返回当前的位置对象。每当您需要知道当前URL时,这可能都会有用。

  • 问题内容: 有没有一种简单的方法可以从iframe获取当前网址? 观众将浏览多个站点。我猜我会在javascript中使用某些东西。 问题答案: 出于安全原因,只要iframe的内容和引用javascript是从同一域提供的,您就只能获取该url。只要这是对的,类似这样的东西就会起作用: 如果两个域不匹配,则会遇到跨站点引用脚本安全性限制。

  • 问题内容: 我有一个如下的路由器: 这是我要实现的目标: 将用户重定向到(如果未登录) 如果用户在已经登录时尝试访问,请将其重定向到root 所以现在我想以检查用户的状态的,然后做一些事情,如: 这里的问题是我找不到获取当前路由的API。 我发现建议使用Router.ActiveState mixin和路由处理程序来解决此已关闭的问题,但是现在似乎已弃用了这两个解决方案。 问题答案: 阅读更多文档