我有以下代码:
/**
* Lists all User entities.
*
* @Route("/{cid}",defaults={"cid" = null},name="user")
* @Template()
*/
public function indexAction($cid=null)
{}
Run Code Online (Sandbox Code Playgroud)
现在,如果我键入site/user/1然后它可以工作,但如果我输入site/user/它说:
No route found
Run Code Online (Sandbox Code Playgroud)
我怎么能知道这两条路线都有效?
注意:我是Angular的新手,所以请原谅任何新来的愚蠢.
细节
问题
compiler.es5.js:1689未捕获错误:模块'ProjectsModule'导入的意外指令'ProjectsListComponent'.请添加@NgModule注释.
应用模块
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { AngularFireModule } from 'angularfire2';
import { AngularFireDatabaseModule } from 'angularfire2/database';
import { AngularFireAuthModule } from 'angularfire2/auth';
import { environment } from '../environments/environment';
import { ProjectsModule } from './projects/projects.module';
import { HttpModule } from '@angular/http';
@NgModule({
imports: [
BrowserModule,
HttpModule,
ProjectsModule,
AngularFireModule.initializeApp(environment.firebase, 'AngularFireTestOne'), // imports firebase/app …Run Code Online (Sandbox Code Playgroud)我刚刚将一个应用程序从 Angular 11.2.7 迁移到 Angular 12。一切运行良好,除了当我开发和使用“ng serve”时,重建时间现在要慢得多,以至于令人沮丧。
我在 M1 iMac 上,使用节点 16.1.0,这是值得的。
在我转向 Angular 12 之前,机器在开发重建(亚秒级)时闪电般快速。现在如果我只更改一行代码,即使我只更改控制台日志中的一个字母,构建时间为 23 秒,大约 22其中的几秒钟被“阶段:密封”占用。
我还注意到,即使在 ng 服务时,现在一切都从缩小的“main.js”运行。我似乎记得版本 11 没有这样做,但在开发过程中运行了单个未缩小的组件。也就是说,ng每次我更改任何内容时,服务现在似乎都在做一些完整的生产构建。我认为这是缓慢的根本原因,但我不确定。
所以 。. .
在 Angular 12 中,我还应该使用 'ng serve' 进行开发吗?
迁移时是否需要设置一个选项,也许是关闭完全缩小的重建,以保持旧的构建速度?
无论如何,这个“密封阶段”是什么?对我来说,这听起来像是一个生产构建术语!
谢谢
约翰
我似乎无法捕获Window滚动事件.在几个网站上,我发现代码与此类似:
@HostListener("window:scroll", [])
onWindowScroll() {
console.log("Scrolling!");
}
Run Code Online (Sandbox Code Playgroud)
这些片段通常来自版本2.这在Angular 4.2.2中似乎不起作用(不再?).如果我将"window:scroll"替换为"window:touchmove",那么touchmove事件处理得很好.
有谁知道我错过了什么?非常感谢你!
我有以下路由配置.
@RouteConfig([
{
path: '/home',
name: 'Homepage',
component: HomepageComponent,
useAsDefault: true
}
)
export class AppComponent {
}
Run Code Online (Sandbox Code Playgroud)
每当浏览器指向/home此路由时,但不适用于/Home任何其他情况变化.如何在不关心案例的情况下使路由器路由到组件.
谢谢
我有一个有两名canActivate守卫的路线(AuthGuard和RoleGuard).first(AuthGuard)检查用户是否已登录,如果没有,则重定向到登录页面.第二个检查用户是否具有允许查看页面的角色定义,如果没有,则重定向到未授权页面.
canActivate: [ AuthGuard, RoleGuard ]
...
export class AuthGuard implements CanActivate {
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {
...
this.router.navigate(['/login']);
resolve(false);
}
export class RoleGuard implements CanActivate {
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> {
...
this.router.navigate(['/unauthorized']);
resolve(false);
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我访问路线并且我没有登录时,我点击了AuthGuard,它失败并告诉路由器导航到/login.然而,即使AuthGuard失败RoleGuard了,然后运行然后导航到/unauthorized.
在我看来,如果第一个失败,那么运行下一个后卫是毫无意义的.有没有办法强制执行此行为?
我试图从我的数据库中获取第三方(可能不安全)的html内容并将其插入到我的html文档中.
我如何安全地做到这一点(针对XSS的保护)?
在Angular1.x中曾经有过$sce消毒输入,我如何在Angular2中做到这一点?据我了解,Angular2默认自动清理它,这是正确的吗?
这样的东西不起作用:
<div class="foo">
{{someBoundValueWithSafeHTML}} // I want HTML from db here
</div>
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Angular2连接/对API执行POST请求,这是一个带有基本身份验证密码的非常简单的API.在api上禁用密码时,一切都按预期工作.但是当我启用基本身份验证时,Angular无法再连接到API.在邮递员一切正常.我尝试了以下但没有成功.
我有两个标题"Content-Type"和"Authorization"
headers.append("Content-Type", "application/x-www-form-urlencoded");
Run Code Online (Sandbox Code Playgroud)
我试过这两个标题.
headers.append("Authorization", "Basic " + btoa(Username + ":" + Password));
headers.append("Authorization", "Basic VXNlcm5hbWU6UGFzc3dvcmQ=");
Run Code Online (Sandbox Code Playgroud)
我唯一能找到的是,在RAW请求标头中只有一行包含标题名称,但缺少值:
Access-Control-Request-Headers: authorization, content-type
Run Code Online (Sandbox Code Playgroud)
原始标题:
#Request Headers
OPTIONS /shipment HTTP/1.1
Host: api.example.com
Connection: keep-alive
Access-Control-Request-Method: POST
Origin: http://localhost:4200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Access-Control-Request-Headers: authorization, content-type
Accept: */*
Referer: http://localhost:4200/address
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,nl;q=0.6
Run Code Online (Sandbox Code Playgroud)
希望有人能提供帮助
我知道我们可以使用Selenium自动化AngularJs应用程序.但是我们有一个单独的E2E测试框架,它是用于AngularJs应用程序自动化的Protractor.
任何人都可以帮助我理解为什么我们应该使用量角器?为什么不选择硒?
我有一个具有输入参数的组件:
import {Component,Input} from '@angular/core';
@Component({
selector: 'comment' ,
template: `
<div class="col-lg-6 col-md-6 col-xs-6 thumb">
<div class="post-owner">
<div class="media">
<div class="media-left">
<a href="#">
<img class="media-object rounder" src=imageURI >
</a>
</div>
</div>
</div>
</div>`
})
export class CommentCompoent{
@Input() imageURI="";
}
Run Code Online (Sandbox Code Playgroud)
在父组件中,我已将图像路径传递给它,如下所示:
<comment [imageURI]='image_path'></comment>
Run Code Online (Sandbox Code Playgroud)
问题是,当我运行它时,它抱怨:
EXCEPTION: Error: Uncaught (in promise): Quotes are not supported for evaluation!
所以我该怎么做?
更新:当我[imageURI]='image_path'在父组件中删除它时它工作正常,它完美地显示组件的其余部分
angular ×8
typescript ×6
routing ×2
angular-cli ×1
angularjs ×1
header ×1
php ×1
protractor ×1
sanitize ×1
scroll ×1
selenium ×1
symfony ×1
testing ×1