问题标签 [angular-ui-router-extras]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
208 浏览

angularjs - 删除默认的 ui-router 状态,然后嵌套状态在 AngularJS 中处于活动状态

这可能是一个简单的答案,但我很难将我的大脑包裹在它周围。我正在构建一个 Angular 仪表板,一旦登录,用户可以浏览到 /dashboard;我还有用于浏览仪表板的嵌套状态。下面是我的状态是如何设置的(为了简洁而缩短)

应用程序.js

仪表板.html

虽然与这个问题无关,但我为页眉和仪表板菜单创建了两个指令(以防你想知道那是什么)

浏览器视图:(编辑以添加整个标题的另一个屏幕截图) 在此处输入图像描述 在此处输入图像描述

在此处输入图像描述

我想知道当一个活动状态被激活时该怎么做——在这个例子中,dashboard/new 将不会显示 /dashboard 页面上的默认内容。

感谢您查看 - 请问我任何问题,因为我知道我想问什么,并希望我没有混淆。谢谢你。

0 投票
0 回答
272 浏览

angularjs - $stateProvider.state().state(); 之间的区别 和 $stateProvider.state(); $stateProvider.state();

我对 $stateProvider 的状态方法感到困惑。

有什么区别:

或者

0 投票
0 回答
466 浏览

angularjs - UI Router sticky onReactivate refresh listview

我正在使用带有附加功能的 angular 和 ui-router,以便在从移动 spa 应用程序的详细信息页面返回时,我可以使用粘性状态来维护列表视图滚动位置。

我的列表是一个剑道移动列表视图。我正在实施 crud,并希望在返回时反映在列表视图中所做的更改。我没有在我的后退按钮中使用 $state.go,而是使用 $window.history.back 因为我希望后退按钮“按预期”工作,所以我不能使用该函数的 reload 参数。

我连接了 onReactivate 并注入具有标志的服务,告诉它是否已完成 crud 操作并重新加载列表。这一切正常,我可以成功确定是否需要重新加载屏幕。

所以,我尝试使用 kendo.mobile.ui.ListView 刷新方法。我使用 angular.element("#idoflistview").data("kendoMobileListView").refresh()。它确实找到并刷新了它,但是所有项目都设置为 style="transform: translate3d(0px, 0px, 0px);",所以它们都相互重叠。

我最初确实尝试只做一个 $state.reload() 并重建页面,它确实有效,因为它在控制器中调用了我的 init 函数,我可以使用标志知道以正确的方式请求数据,但是listview 不会建立。数据请求已发送并检索,但列表视图为空。

如果可能的话,我宁愿只刷新列表,因为服务已经拥有带有更新数据的 kendo 数据源,所以真的不需要再次调用数据库。

因此,我的列表视图设置正常工作,但只有在我刷新 onReactivate 时才会中断,因为它们都在那里,但由于列表中的每个 li 都从 0 开始(虽然更新在那里,所以它确实刷新了)。

我假设这是因为它需要稍后再做。如果是这样,我该怎么做?

关于如何让刷新方法正常工作的任何想法?还是有更好的方法来做到这一点?

这是抽象视图:

这是我声明我的列表视图的方式:

这是状态的代码:

编辑:经过进一步调查,我发现这是由于 kendo.mobile.scroller。在我刷新列表视图时它不可用,因此它以某种方式弄乱了列表视图的绘制方式。这对我来说毫无意义,因为列表视图位于滚动条内(如果我之后检查仍然如此)。如果我删除滚动条,它会按预期工作,但我需要那个滚动条,因为我没有使用剑道视图并且页面上有页脚,所以它会随着内容滚动,我正在使用拉动刷新滚动条的功能(不想使用 listviews pull 来刷新,因为它不允许我处理刷新是如何发生的,而滚动条却可以)。

另一个编辑:我已经追踪到它只有在我在列表视图上加载更多 true 时才会发生。如果我关闭它,那么它工作正常。因此,在上面的代码示例中,如果我设置 k-load-more="false" 它可以工作。我也用无限滚动尝试过,两者都有相同的效果。

0 投票
1 回答
400 浏览

angularjs - $state.go 在使用 ui-route 时出现问题,url 更改为新状态,但看不到新视图内容的 html 更改

我有一个场景,我有一个主页,即 index.html,有 2 个视图(左视图)View1.html 和(右视图)view2.html,但是在左视图上选择一条记录时,我想将右视图从 view2.html 更改为view3.html。

我在用

将视图从 View2.html 更改为 View3.html

但是我看到了 url 的变化,details/{id} 但我没有看到 UI(html 标记)对 view3.html 的更改(因此 view3 的控制器也没有被触发(为简单起见,删除了下面的控制器代码))

任何帮助都会受到高度评价。如果需要,请随时问我更多代码。

0 投票
1 回答
1567 浏览

javascript - Angular Ui-Router-Extras | 试图实现粘性状态,但不起作用

好吧,我有这个plunkr试图模拟我的情况:

我有3 个选项卡,想法是用户在文本框中键入一个单词,当单击按钮时,角度服务会根据在文本框中键入的内容从数据库返回答案(结果)(我已经模拟了这个过程)请求数据到 json 文件,所以无论你输入什么都不重要,总是会返回整个数据)并在另一个视图中填充一个表。

我的目标是什么?好吧,我需要保留每个标签完整的每个视图。换句话说,当用户单击一个选项卡(更改状态)并返回到另一个选项卡时,所请求的数据可能在那里(以及在搜索框中键入的内容)。

编辑:

我有一个包含我的定义的数组:

我以这种方式动态地定义我的状态:

仅适用于粘性状态home.tab*.table。这有效,但不像预期的那样。例如,我在搜索框中输入的内容,当我更改选项卡时会消失。我需要每个选项卡都可以保留 3 个数组(如下所述)的内容。那是我的问题。

我有 3 个数组:

我使用一个调用函数$scope.clear_arrays来清除数组上的数据(甚至是$stateChangeSuccess)。我不知道这是否可以得到我想要的。

我知道我必须使用很棒的angular-ui-router-extras(sticky states)库,但我不知道如何在我的情况下应用它。我尝试过:

但不起作用。一些想法,一些帮助?

编辑:

正如文档所说,我需要这部分:

...切换到其他选项卡之一时,应用程序中选项卡的状态不会退出。用户应该能够在选项卡之间来回切换,而不会中断他们的工作流程。

0 投票
0 回答
79 浏览

angularjs - angularjs中的控制器运行两次

我编写了一个包含三个步骤的教育页面 mainpage->allbookPage->eachbookpage->unitPage 我使用下面的 rout 在它们之间切换但是当我直接转到 eachbookpage 并单击一个单元并转到 unitpage 时,单元控制器运行两次。我怎样才能防止跑两次?

0 投票
1 回答
528 浏览

angularjs - 在angularjs中创建动态模板

嗨,我想动态创建角度模板,如下所示:

索引.html:

我怎么能那样做?我在网上搜索,发现我们可以动态包含模板,但我没有找到任何指定如何动态创建模板本身的地方。

谢谢, 桑比尔

0 投票
1 回答
64 浏览

angularjs - 在 ui-router url 参数上应用角度过滤器

我想对 url 参数应用一些过滤器。例如:

ui-sref="stateName({slug:{{someobj.slug | someFilter}}})"

我该如何应用这个?

0 投票
0 回答
448 浏览

javascript - 抽象状态父路由时的Angular UI路由器,子状态控制器不可访问

我正在使用 UI 路由器,我的 2 个状态使用相同的视图。我的方法如下。

我可以按 1,2 和 3 的顺序查看我的控制台日志,首先解析数据,然后点击内联控制器。

我正在尝试将其更改为使用抽象参数。

现在我只能看到解析并且内联 ctrl 没有被调用。这是我在设置中缺少的东西吗?这里的文档是不确定的。

0 投票
0 回答
86 浏览

angularjs - 避免在 $state.go 或 uisref 中发生两次状态转换

使用 UIRouter,尝试从子状态 [A.childa with url "localhost:90/A/childa/212"] 导航到不同的状态 [B],但转换发生了两次 [就像单击按钮url 从“localhost:90/A/childa/212”更改为 localhost:90/A/childa,然后再次单击它更改为 localhost:90/B“。我需要 localhost:90/A/childa/212直接用uisref或者$state.go改成localhost:90/B,怎么办呢?