问题标签 [angularjs-routing]

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 回答
3361 浏览

events - AngularJS:如何在承诺完成后防止事件的默认()?

我有一些这样的代码:

当我试图这样解决时promises

我成功了event(因为异步执行),过了一会儿,event什么时候promises解决了。

有没有办法event与 my链接promises,所以它会在承诺被解决后被阻止,而不是在函数结束后被阻止?

0 投票
14 回答
157149 浏览

angularjs - Angular - ui-router 获取先前的状态

有没有办法获得当前状态的先前状态?

例如,我想知道在当前状态 B 之前的先前状态是什么(先前的状态本来是状态 A)。

我无法在 ui-router github 文档页面中找到它。

0 投票
1 回答
5714 浏览

javascript - AngularJS 指令对属性更改没有反应

我有一个聊天指令,用于在页面上放置聊天室。

HTML 看起来像这样:

这是在一个名为“标准”的文件中

我正在使用 angularjs-ui-router 创建父视图,其中聊天指令在该视图内提供聊天。这在第一页加载时工作正常,聊天加载。但是当我更改页面/聊天室时,我使用另一个控制器来运行setCurrentChatID(). 这改变了currentChatIDDOM 中的聊天元素,我还看到聊天元素的属性更改为 angularjs-batarang 中的新 ID,但聊天指令的控制器不运行。当 chatID 发生变化时,如何让它正常工作/激活聊天的控制器?

谢谢。

0 投票
1 回答
3328 浏览

angularjs - 多个控制器,仅影响 ng-view

我有一个使用两个控制器的页面SearchControllerProductController它们都是一个应用程序的一部分。它们都位于主页上,并被称为 using ng-controller。当我单击“搜索”时,我设置了一条路线,这会加载一个ng-view使用ProductController. 这加载得很好,但我遇到的问题是,当点击搜索时,页面上已经存在的divwithProductController不会受到影响。

这是plunker:http ://plnkr.co/edit/LnsL0M3KczBmeKsS9uDb?p=preview

HTML - 我有一个虚拟选择框。这里重要的部分是 ProductController 的第二个 div。这意味着如果 $scope.products.length > 0 则显示。单击搜索时,ProductController 内部的 $scope.products 会被填充,但此框不受影响。

在我的 ProductController 中,我加载了一个 products.json 文件,它只带回了所有内容。所以我认为现在 $scope.products.length > 0,上面的 div 应该显示。但事实并非如此。我究竟做错了什么?

我正在使用 console.logs,因此您可以更好地了解正在发生的事情。

此外,一旦您单击搜索。如果您再次单击搜索,它不会运行任何东西。我假设这是因为它已经运行了 location.path 函数。但是为什么会发生这种情况,我怎样才能让它再次搜索呢?

0 投票
1 回答
2648 浏览

javascript - Angularjs - ng-repeat 中的 ng-view

我有一个产品列表。对于每一个,我都有按钮可以在这个 ng-view 中显示有关它的详细信息和评论。

例如,用户必须一目了然地查看所有可用产品的详细信息。

这是 HTML 列表:

然后我的路由:

我的控制器:

最后是 Details.html

关于它的两个问题:

  1. 这是一个正确的方法吗?还有其他方法吗?
  2. 如何获取实际 ng-view 的 productId?名称:{{Details[ productId ].Name}}

谢谢!!!

0 投票
2 回答
3122 浏览

angularjs - angularjs ui-router 位置路径无法识别正向斜线

我正在使用angular ui router / stateProvider。但是,我在第二个正斜杠被忽略后设置了我的 url 任何部分,它总是发送到这个状态:

其中只有 1 个正斜杠。即使我进入localhost/contacts/asdf以下状态也不会运行。

$stateProvider.state('test', { url: "/contacts/asdf", views: { 'main': { templateUrl: '/tmpl/contacts/asdf', controller: function () { console.log('this在这里不起作用') } } } });

控制台 ss 这是 $location 的控制台日志。如您所见,$location 仅将 url 的最后一部分识别为路径。据我所知,这是错误的。它缺少前面的“联系人”。任何 url 都被解释为只有 url 的 1 部分并发送到boardstate。我该如何解决。谢谢。

编辑:发现这是由角度 1.1.5 引起的。恢复到 1.1.4 没有这个。

0 投票
0 回答
1689 浏览

javascript - 使用浏览器后退按钮返回上一页,可以 - 使用纯 JavaScript 返回,不可以

在我的网站上,我有一个产品页面,当您单击产品时,它会转到产品的详细信息。

产品页面的链接是:http ://www.dummyurl.com/Index.html#/category/1/Foam?price=13.13-26.25&color=Green

产品详情页面的链接是:http ://www.dummyurl.com/Index.html#/products/2450-Kunda/5036702024506?price=13.13-26.25&color=Green

当我点击浏览器的后退按钮时,我将被拒绝进入带有链接的产品页面:http ://www.dummyurl.com/Index.html#/category/1/Foam?price=13.13-26.25&color=绿色的

但我还想要产品详细信息页面上的 html 按钮。按钮后面是纯 Javascript 代码:$window.history.back();

当我单击后退按钮时,我将被以下网址拒绝:http ://www.dummyurl.com/Index.html 这是我启动网站时的起始网址,而不是我来自的网址。

看起来 AngularJS 中的路由将我发送到默认 url。

有人有解决这个问题的想法吗?

0 投票
2 回答
370 浏览

backbone.js - 我们如何在angularjs中将模板添加到div

我陷入了一些我尝试在 Angular js 中实现的主干概念。在backbonejs中,我们可以将模板(html页面)添加到特定的div标签中,然后我们可以呈现该div本身。可以在angularjs中做同样的事情吗?将模板添加到 div 并渲染它?</p>

0 投票
2 回答
309 浏览

angularjs - 页面重新加载时的问题

我的问题很简单,我在我的应用程序的一个页面上,当我在浏览器中点击重新加载/刷新按钮时,而不是加载同一页面,它回退到 /home,奇怪的是它在第一时间尝试重新加载页面,但发生了一些事情(没有控制台错误)并回退到 /home。

澄清一下,假设我有这个站点地图

我有 3 页,/home、/title、/title/info

因此,如果我在 /title/info (localhost:3000/#/title/info=123) 上,并点击重新加载 /refresh 按钮,而不是查看 /title/info 它将回退到 /home (localhost:3000/#/家)

我正在使用 AngularJS 的稳定版本。

所以任何人都可以帮助我解决这个问题,因为它让我发疯。

提前致谢。

** 编辑 ** 这是 app.js 文件的链接,用于检查它是否正常。

http://pastebin.com/0AAuASyZ

0 投票
1 回答
439 浏览

arrays - 更改 ng-repeat 的排序顺序会更改 routeParams.id

如果我保持排序顺序不变,使用 routeParams.id 从我的 scope.data 对象中提取正确的对象就像一个魅力。一旦顺序发生变化,routeParams.id 就会发生变化,并且与 $scope.data 中对象的顺序不匹配。

因此,单击 id 为 0 的“Agera”将打开 /#/0,并且绑定将对应于 $scope.cars[0],显示 Agera 的数据。但是,如果排序顺序更改为“制造”,将布加迪放在首位,现在如果您单击“威龙”链接,将再次传递 0 的 id,但由于数据对象没有更改,0 仍然映射到“阿格拉。”

理想情况下,我只想使用我自己的 $routeParams 以便 URL 更明确:

但是现在我无法告诉我的数据数组使用哪个汽车对象。那么如何在不使用数组订单 ID 的情况下使用 $routeParams 连接到我的汽车数组中的正确“汽车”对象?

或者我怎样才能将 id 固定到它们的对象上,以便它们不附加到排序顺序?

== 编辑 ==

好的,我已经更改了我的范围以显式调用对象中的每个项目:

所以这行得通。虽然对于大物体来说似乎非常低效。另外,如果该数据不在 URL 中,则它不起作用。有没有更好的办法?