问题标签 [ngroute]
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.
javascript - AngularJS:如何从控制器功能切换视图?
我正在尝试使用 AngularJS 的ng-click功能来切换视图。我将如何使用下面的代码执行此操作?
索引.html
控制器.js
angularjs - 在 AngularJS 中读取查询参数最简洁的方法是什么?
我想使用 AngularJS 读取 URL 查询参数的值。我正在使用以下 URL 访问 HTML:
http://127.0.0.1:8080/test.html?target=bob
正如所料,location.search
是"?target=bob"
。为了访问target的值,我在网上找到了各种示例,但它们都不适用于 AngularJS 1.0.0rc10。特别是,以下都是undefined
:
$location.search.target
$location.search['target']
$location.search()['target']
有人知道什么会起作用吗?(我$location
用作控制器的参数)
更新:
我在下面发布了一个解决方案,但我对此并不完全满意。Developer Guide: Angular Services: Using $location中的文档说明了以下内容$location
:
我什么时候应该使用 $location?
任何时候您的应用程序需要对当前 URL 的更改做出反应,或者如果您想更改浏览器中的当前 URL。
对于我的场景,我的页面将从带有查询参数的外部网页打开,因此我本身并不是“对当前 URL 的更改做出反应”。所以也许$location
不是适合这项工作的工具(有关丑陋的细节,请参阅下面的答案)。因此,我将这个问题的标题从“如何使用 $location 读取 AngularJS 中的查询参数?” 到“在 AngularJS 中读取查询参数最简洁的方法是什么?”。显然我可以只使用 javascript 和正则表达式来 parse location.search
,但是为了一些如此基本的东西而去低级真的冒犯了我的程序员的敏感性。
$location
那么:有没有比我的答案更好的使用方法,还是有简洁的替代方法?
angularjs - 根据条件重定向到某个路由
我正在编写一个具有登录视图和主视图的小型 AngularJS 应用程序,配置如下:
我的 LoginController 检查用户/密码组合并在 $rootScope 上设置一个属性,以反映这一点:
一切正常,但如果我访问,http://localhost/#/main
我最终会绕过登录屏幕。我想写类似“每当路由更改时,如果 $rootScope.loggedUser 为空,则重定向到 /login”
...
... 等待。我可以以某种方式收听路由更改吗?无论如何,我都会发布这个问题并继续寻找。
angularjs - AngularJS 分页与 $location.path 但没有 ngView 重新加载
我的单页应用程序加载了一个主页,我想展示一系列想法。每个想法都显示在动画 Flash 容器中,并显示动画以在想法之间循环。
想法是使用 $http 加载的:
但是,为了从历史导航和 UX 中受益,我希望使用 $location 更新地址栏以显示每个想法的正确 url:
我在这里调用 $apply 是因为这个事件来自 AngularJS 上下文之外,即 Flash。我希望当前的控制器/视图保留并且视图不重新加载。这是非常糟糕的,因为重新加载视图会导致整个闪存对象被丢弃,并且预加载器循环再次开始。
我试过听 $routeChangeStart 做一个 preventDefault:
但无济于事。如果我能找到一种在更改 $location.path 时覆盖视图重新加载的方法,那么整个事情就会变得很糟糕。
我仍然非常喜欢 AngularJS,所以我很高兴有任何关于如何构建应用程序以实现我的目标的指示!
angularjs - Angular,使用选择输入过滤器来更新路由?
我设置了我的应用程序,其中可以使用选择输入按颜色过滤产品列表,$routeprovider
如果 URL 中存在此颜色参数,我还可以将其传递给页面。
我现在要做的是在更改选择框时更新 url / 路由。如何将选择的更改绑定到路线?
angularjs - 从 AngularJS url 中删除片段标识符(# 符号)
是否可以从 angular.js URL 中删除 # 符号?
当我更改视图并使用参数更新 URL 时,我仍然希望能够使用浏览器的后退按钮等,但我不想要 # 符号。
教程 routeProvider 声明如下:
我可以编辑它以在没有# 的情况下具有相同的功能吗?
javascript - Angular 路由和 ng-view
角度如何知道对包含“ng-view”元素的模板视图提出请求?
如果我在我的应用程序中导航直接说
. 仍然向“/或索引模板”发出请求,因为它包含渲染所有视图所需的“ng-view”元素。
当我从索引导航到 /Categories/List/accessories 时,不再请求索引。
下面是我的基本路由,部分复制自 GitHub 上的 Angular MVC “CookBook”示例
angularjs - 错误:没有模块:ngRoute 尝试在 angularjs 中实现路由时
我错过了什么吗?谢谢!
javascript - Angular 1 - 获取当前 URL 参数
我想从当前 URL 中提取数据并在控制器中使用它。例如我有这个网址:
app.dev/backend/surveys/2
我要提取的位:
app.dev/backend/ :type / :id
Angular 中有什么可以帮助我完成这项任务的吗?
javascript - 使用带有注入承诺的 ngRoute 'resolve' 参数
我已经配置了resolve
几个路由的参数来返回一个承诺,以便延迟控制器的实例化,直到承诺得到解决。目前我正在使用函数表示法,而不是指定要注入的字符串。
例如:
该article
参数正确地注入了已解决的承诺值。
但是,我想保持它干燥并通过指定一个字符串来注入这个值,如文档中所述。
当我设置一个工厂函数来提供这样的承诺时,实例只被正确注入一次(第一次)。此后,由于 AngularJS 注入服务已经缓存了该实例,因此使用了相同的 promise。
是否可以指定每次请求时都必须运行工厂函数?或者以其他方式实现我的目标?