这两者之间的区别是什么?每种用例有什么用处?
该文档是不完全帮助:
forRoot创建一个包含所有指令,给定路由和路由器服务本身的模块.
forChild创建一个包含所有指令和给定路由的模块,但不包括路由器服务.
我的模糊猜测是,一个用于'main'模块,另一个用于任何导入的模块(因为它们已经可以从主模块获得服务),但我真的不能想到用例.
我刚开始使用新的路由库(@ angular/router v3.0.0-alpha.7),但是遵循官方文档会导致以下错误:
browser_adapter.ts:74: EXCEPTION: Error: Uncaught (in promise): Error: Cannot find primary outlet to load 'HomePage'
Run Code Online (Sandbox Code Playgroud)
问题是 - 如何摆脱错误并使路由器按预期运行?我错过了一个设置吗?
(使用alpha.6版本时会出现相同的错误.)
app.component.ts
import { Component } from '@angular/core';
import { ROUTER_DIRECTIVES } from '@angular/router';
@Component({
selector: 'app',
template: `
<p>Angular 2 is running...</p>
<!-- Routed views go here -->
<router-outlet></router-outlet>
`,
providers: [ROUTER_DIRECTIVES]
})
export class AppComponent {
}
Run Code Online (Sandbox Code Playgroud)
app.routes.ts
import { provideRouter, RouterConfig } from '@angular/router';
import { HomePage } from './pages/home/home';
export const routes: RouterConfig = …Run Code Online (Sandbox Code Playgroud) 使用建议的方法: 结果如下:按钮中的链接, 注释行之间的代码
我想知道是否有办法使用react 包装HTML 标签中的Link元素.'react-router'button
我目前Link在我的应用程序中有导航页面的组件,但我想将该功能映射到我的HTML按钮.
我希望用户只使用一个连接到用户会话的订单.所以我为订单设置了奇异的资源
routes.rb中:
resource :order
Run Code Online (Sandbox Code Playgroud)
意见/命令/ new.html.erb:
<%= form_for @order do |f| %>
...
<% end %>
Run Code Online (Sandbox Code Playgroud)
但是当我打开新的订单页面时,我收到一个错误:
undefined method `orders_path`
Run Code Online (Sandbox Code Playgroud)
我知道,我可以设置:url => order_path在form_for,但什么是解决这一冲突的真正方法是什么?
我想将路由与server.js文件分开.
我正在关注Scotch.io的这个教程 http://scotch.io/tutorials/javascript/build-a-restful-api-using-node-and-express-4
如果所有行都在server.js文件上,则它正在工作.但我没能分开.我怎样才能做到这一点?
server.js
// set up ======================================================================
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
// configuration ===============================================================
app.use(bodyParser());
var port = process.env.PORT || 8000;
var mongoose = require('mongoose');
var database = require('./config/database');
mongoose.connect(database.url);
var Video = require('./app/models/video');
// routes =======================================================================
app.use('/api', require('./app/routes/routes').router);
// listen (start app with node server.js) ======================================
app.listen(port);
console.log("ready captain, on deck" + port);
module.exports = app;
Run Code Online (Sandbox Code Playgroud)
和app/routes/routes.js
var express = require('express');
var router = express.Router();
router.use(function(req, res, next) { …Run Code Online (Sandbox Code Playgroud) 所以基本上我在应用程序目录中有一个服务器组件,我想获取路径名。我尝试使用 window.location 来做到这一点,但它不起作用。我有什么办法可以做到这一点吗?
Backbone上我看到的所有例子都使用了一个路由器用于整个应用程序,但是对于你的应用程序的每个部分(页眉,页脚,舞台,侧边栏)都有一个路由器是不是有意义?有没有人用多个路由器构建应用程序,您有什么经历?
让我们考虑一个具有嵌套视图的复杂应用程序:当一个视图有自己的处理子视图显示的路由器,而不是让一个大型路由器必须通知主视图更改其子视图时,这不是更好吗?
这个问题的背景:我看到骨干网中的路由器和GWT中的ActivityMapper有很多相似之处.ActivityMapper仅负责为DOM中的给定路径和给定容器获取正确的演示者.
(节点:13176)[DEP_WEBPACK_DEV_SERVER_ON_AFTER_SETUP_MIDDLEWARE] DeprecationWarning:“onAfterSetupMiddleware”选项已弃用。请使用“setupMiddlewares”选项。(用于node --trace-deprecation ...显示创建警告的位置)(节点:13176)[DEP_WEBPACK_DEV_SERVER_ON_BEFORE_SETUP_MIDDLEWARE] DeprecationWarning:“onBeforeSetupMiddleware”选项已弃用。请使用“setupMiddlewares”选项
我希望有一个'catch all'路由,当没有其他定义的路由匹配时,它会运行.一种404 NotFound错误处理程序.
我尝试添加此功能,但可以防止其他路由匹配:
this.route(/(.*)/, 'notFound', this.notFound);
Run Code Online (Sandbox Code Playgroud)
有没有人解决过这个问题?
我已经开始学习next.js了,在Next.js官方文档中:
该文档提到了两个路由器功能;应用程序路由器和页面路由器。
它们之间有什么区别?在什么情况下,其中一种比另一种更合适?
router ×10
javascript ×3
reactjs ×3
angular ×2
backbone.js ×2
next.js ×2
architecture ×1
button ×1
express ×1
form-for ×1
html ×1
hyperlink ×1
loading ×1
middleware ×1
node.js ×1
path ×1
resources ×1
singular ×1