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

角度-动态选择起始状态

松英叡
2023-03-14
问题内容

很明显,我的应用程序自动以默认状态(网址为:“ /”)启动。我们称它为state A

如果某个条件是真实的,我想坚持一下。这意味着如果x === 4例如,那么我希望状态B成为第一个加载的状态。

我的问题是,例如,当我检查该条件时,app.run默认状态已经被加载并显示在视图中,然后才切换到state B

有什么方法可以仅在检查条件后才阻止状态加载并启动它吗?


问题答案:

有一个可行的例子

如评论中所述,我们可以使用UI-Router随附的本机内置功能。其中之一是$
urlRouterProvider.deferIntercept(defer)

禁用(或启用)延迟位置更改拦截。

如果您希望自定义同步URL的行为(例如,如果您希望推迟转换但保留当前URL),请在配置时调用此方法。然后,在运行时,$urlRouter.listen()在配置了自己的$locationChangeSuccess事件处理程序之后调用

I.步骤-停止执行

因此,我们可以定义状态 .config()

.config(['$stateProvider', '$urlRouterProvider','$locationProvider',
    function ($stateProvider, $urlRouterProvider,$locationProvider) {

        // States
        $stateProvider
          ...
          .state('parent', {
              ...
          })
          .state('parent.child', { 
              ...
          })
          ;

        ...
        // here we say STOP
        $urlRouterProvider.deferIntercept();
    }
])

二。步骤-初始化.run()中需要的内容-重新启用执行

这可能是run的一些天真示例:

.run(['$urlRouter', '$timeout', '$state',
  function($urlRouter, $timeout, $state) {

    $timeout(function(){

      // here we turn all on again...
      $urlRouter.sync();
      $urlRouter.listen();

      // there could be some decision, driven by $http load
      // we just use some state as default target
      $state.go("parent.child");
    }, 1000)

}]);

Se会等待一秒钟,然后我们重新启用所有执行并重定向到“ parent.childd” …但根据 .run()
阶段所做的某些决定,可以是其他任何形式

在这里检查



 类似资料:
  • 问题内容: 我通过AngularJs调用后端服务/资源。如果不可用,它将返回,并且“ Chrome网络”标签显示如下所示: 但是在AngularJs 调用结果内部,我得到了而不是: 为什么会发生? 注意:我在后端有一个码头服务并启用了CORS: 问题答案: 它返回-1,因为如跟踪所示,GET请求甚至都没有发送。已发送的是飞行前OPTIONS请求,该请求通过返回404阻止浏览器发送实际的GET请求。

  • 角度字段存储数字作为其值,并存储字符串作为其文本。 它的值是0到360之间的数字(可以更改此范围),而其文本可以是输入到其编辑器中的任何字符串。 角度字段 带编辑器的角度字段 压缩的角度字段 创造 { "type": "example_angle", "message0": "angle: %1", "args0": [ { "type": "field_angle

  • 如果我打开活动,复选框始终保持选中状态,即使我取消选中它并离开活动或关闭应用程序,在重新启动活动后,它也将保持选中状态。 我已尝试使用以下代码段保存活动的状态。 复选框应始终处于用户离开它的状态(选中或未选中)。

  • 我试图收集信息,以便为UML状态机编写正确的转换选择算法。 UML上层结构规范(15.3.12 StateMachine)规定 只有在相互正交的区域中发生的转换才能同时触发。 “相互正交”是否意味着这些区域处于相同的嵌套级别? 对于给定级别的每个状态,将评估所有原始转换,以确定它们是否已启用。 在我看来,它们必须在同一个嵌套层上。正当因为如果在某个嵌套级别上找到一个转换,搜索就会结束。。。 第二个

  • 我有一个选择元素,里面有多个选项: 对于这里看到的每个选项元素,我都有另一个select元素。基本上,我在一个选择元素中列出了一系列音乐流派,在它下面,是与每一个“主流派”相关的子流派。 我想做的是使子体裁只有在相对体裁被选中时才可见。例如,如果用户选择“Pop”,我想向他们显示包含Pop子类型的相关选择字段。 我的HTML标记实际上是由WordPress插件生成的,不幸的是,我无法编辑它。也就是

  • UI状态伪类选择器,用于选择处于某种状态下的UI元素,主要用于HTML表单上,根据表单元素的不同状态,定义不同的样式,来增强用户体验。 表单元素的状态包括获得焦点、失去焦点、选中、未选中、可用、不可用、有效、无效、必填、选填、只读等等。 表 2-10 UI状态伪类选择器 选择器 功能描述 版本 E:focused 选择表单中获得焦点的元素 3 E:checked 选择表单中被选中的radio或者c