是的,这可能是第一百次有人遇到这个问题,但没有解决办法对我有效。。。
我使用角2.0.0 rc和什么都不会工作,我想我错过了一些东西,但我不知道是什么
这是我的文件,它们都可以正确传输,是的,我尝试使用不推荐的路由,是的,我根据文档做了,两者都不起作用。
app.component.ts
import { Component, OnInit } from '@angular/core';
import {Routes, Router, ROUTER_DIRECTIVES} from '@angular/router';
import {LoginComponent} from './login/login.component';
import {HomeComponent} from './home/home.component';
@Component({
selector: 'my-app',
template: `
<h1>{{title}}</h1>
<nav>
<a [routerLink]="['/login']">login</a>
<a [routerLink]="['/home']">home</a>
</nav>
<router-outlet></router-outlet>
`, directives: [ROUTER_DIRECTIVES]
})
@Routes([
{ path: '/login', component: LoginComponent},
{ path: '/home', component: HomeComponent},
])
export class AppComponent implements OnInit {
constructor(private router: Router) { }
ngOnInit() {
this.router.navigate(['/home']);
}
}
主要的ts
import { bootstrap } from '@angular/platform-browser-dynamic';
import { ROUTER_PROVIDERS } from '@angular/router';
import { AppComponent } from './components/app.component';
bootstrap(AppComponent, [ROUTER_PROVIDERS]);
指数html
<!DOCTYPE html>
<html>
<head>
<title>Angular 2 QuickStart</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="styles.css">
<!-- 1. Load libraries -->
<!-- Polyfill(s) for older browsers -->
<script src="node_modules/es6-shim/es6-shim.min.js"></script>
<script src="node_modules/zone.js/dist/zone.js"></script>
<script src="node_modules/reflect-metadata/Reflect.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<!-- 2. Configure SystemJS -->
<script src="systemjs.config.js"></script>
<script>
System.import('app').catch(function(err){ console.error(err); });
</script>
</head>
<!-- 3. Display the application -->
<body>
<my-app>Loading...</my-app>
</body>
</html>
其余的文件几乎都是教程中的复制粘贴,所以我不会用更多的代码来垃圾邮件。。。
更新,我将补充说,由于某种原因,npm日志不会将GET请求发送到@角/路由-弃用/...但是它们会将其发送到其他模块。
我想我知道问题是什么,但我不确定是什么原因造成的
正如您所见,chrome资产中没有routes文件夹。因此,它不知道这一点是有道理的——但是项目文件中的节点_模块在那里,它是在systemjs中指定的。配置。js就像任何其他模块一样。。。
Angular需要[…]
以指示它是需要解析的绑定。
[…]
中的值仅用于将指定的值解析为数组。
<a [routerLink]="['/login']">login</a>
<a [routerLink]="['/home']">home</a>
这并不能解释您收到的错误消息,因为错误消息指示绑定到不存在的属性,而我的更正是让Angular实际执行绑定。
从RC开始。0将路由器更改为新的实现,这意味着许多在线可用的示例都是旧路由器的。
如果您使用的是@RouteConfig
,则是旧路由器。这就是@angular/router不推荐的
新的路由器使用
@Routes
,可从@角/路由器
获得
否则,导入
ROUTER_DIRECTIVES
和ROUTER_PROVIDERS
是相同的。
发布之间的其他重要更改包括。
新路由器不支持命名路由。
之前:
import {RouteConfig} from '@angular/router-deprecated';
@RouteConfig([
{path: '/myroute/:id', component: MyRoute, name: 'MyRoute'}
])
之后:
import {Routes} from '@angular/router';
@Routes([
{ path: '/myroute/:id`, component: MyRoute }
])
routerLink
指令也发生了变化,并且不将对象作为第二个参数来指定路径变量,例如id
之前:
<a routerLink="['MyRoute', {id: 1}]">Link</a>
之后:
<a routerLink="['/myroute', 1]">Link</a>
他们已经弃用了RC2路由器:http://angularjs.blogspot.com.au/2016/06/improvements-coming-for-routing-in.html
我用的是3.0。0-α。7版本。
根据他们的例子,我还制作了一个应用程序。路线。ts文件:
import { provideRouter, RouterConfig } from '@angular/router';
import { FooComponent, BarComponent, BazComponent } from './components/bunchOComponents.ts'
export const routes: RouterConfig = [
{ path: 'foo', component: FooComponent },
{ path: 'bar', component: BarComponent },
{ path: 'baz', component: BazComponent }
];
export const APP_ROUTER_PROVIDERS = [
provideRouter(routes)
];
然后我在我的main.ts文件中使用了这个:
import { bootstrap } from '@angular/platform-browser-dynamic';
import { AppComponent } from './components/appcomponent.ts';
import { APP_ROUTER_PROVIDERS } from './app.routes';
bootstrap(AppComponent, [
APP_ROUTER_PROVIDERS
])
.catch(err => console.error(err));
HTH
我更新我们的应用程序从rc4到angular2.0.0之一,我得到一个模板解析错误在运行时。这是我的视图模板: 错误在routerlink上。以下是错误: 路由器链接在我看来并不畸形...我到底做错了什么?
我必须动态地创建一个复选框列表 无法绑定到“for”,因为它不是已知的本机属性 angular2 新错误消息 未处理的promise拒绝:模板分析错误:无法绑定到“for”,因为它不是“label”的已知属性。 这是我的plnkr显示错误:http://plnkr.co/edit/aAQfWvHc7h7IBuYzpItO?p=preview 我的代码中哪里出错了?
我有问题使用Angular2路由器,我不能解决它。 我还在breadcrumb.ts导入ROUTER_DIRECTIVES 但是当我打开浏览器时,异常如下所示: 无法绑定到'routerlink',因为它不是Breadcrumb>ol:nth-child(0)>li:nth-child(1)>a:nth-child(1)[[routerlink]=['home']]中的已知本机属性
我试图在这里遵循基本的Angular 2教程: https://angular.io/docs/js/latest/guide/displaying-data.html 我可以让angular应用程序加载并显示我的名字,代码如下: 但是,当我尝试添加字符串数组并尝试使用ng for显示它们时,它会抛出以下错误: 以下是代码: 我错过了什么?
我已经将我的应用程序从Angular 2升级到Angular 6版本。ng build--prod正在成功构建应用程序。我能够登录到我的应用程序和50%的功能是完美的工作,在一些选项不工作和抛出下面的异常:
我做错了什么? 错误是