小编Pie*_*Duc的帖子

我如何在Symfony2路由中有可选参数

我有以下代码:

/**
 * 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)

我怎么能知道这两条路线都有效?

php routing symfony

46
推荐指数
3
解决办法
6万
查看次数

Angular CLI - 使用最新版本时请添加@NgModule注释

注意:我是Angular的新手,所以请原谅任何新来的愚蠢.

细节

  • 我已经安装了最新版本的Angular CLI
  • 'ng serve'后,默认应用加载并运行完全正常

问题

  • 我决定创建一个新模块,将其导入到app模块中
  • 这是我在Angular 2中做过几次的事情,它的工作非常好
  • 但是,由于我今天早上运行了最新版本的Angular CLI,导入模块会中断并收到以下错误:

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)

typescript angularjs-ng-model angular-cli angular

45
推荐指数
1
解决办法
12万
查看次数

Angular 12 'ng serve' 构建应用程序的速度很慢,几乎就像生产构建一样

我刚刚将一个应用程序从 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' 进行开发吗?

迁移时是否需要设置一个选项,也许是关闭完全缩小的重建,以保持旧的构建速度?

无论如何,这个“密封阶段”是什么?对我来说,这听起来像是一个生产构建术语!

谢谢

约翰

angular-material angular

33
推荐指数
3
解决办法
6010
查看次数

如何在Angular 4中处理窗口滚动事件?

我似乎无法捕获Window滚动事件.在几个网站上,我发现代码与此类似:

@HostListener("window:scroll", [])
onWindowScroll() {
  console.log("Scrolling!");
}
Run Code Online (Sandbox Code Playgroud)

这些片段通常来自版本2.这在Angular 4.2.2中似乎不起作用(不再?).如果我将"window:scroll"替换为"window:touchmove",那么touchmove事件处理得很好.

有谁知道我错过了什么?非常感谢你!

scroll typescript angular

30
推荐指数
4
解决办法
6万
查看次数

Angular2:使路径路径不区分大小写

我有以下路由配置.

@RouteConfig([
    {
        path: '/home',
        name: 'Homepage',
        component: HomepageComponent,
        useAsDefault: true
    }
)
export class AppComponent {
}
Run Code Online (Sandbox Code Playgroud)

每当浏览器指向/home此路由时,但不适用于/Home任何其他情况变化.如何在不关心案例的情况下使路由器路由到组件.

谢谢

angular2-routing angular

29
推荐指数
5
解决办法
1万
查看次数

多个canActivate防护装置在第一次失败时全部运行

我有一个有两名canActivate守卫的路线(AuthGuardRoleGuard).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.

在我看来,如果第一个失败,那么运行下一个后卫是毫无意义的.有没有办法强制执行此行为?

routing typescript angular2-routing angular

29
推荐指数
5
解决办法
2万
查看次数

清理Angular2中的输入

我试图从我的数据库中获取第三方(可能不安全)的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)

sanitize typescript angular

25
推荐指数
1
解决办法
3万
查看次数

Angular 2基本身份验证无效

我正在尝试使用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)

希望有人能提供帮助

header basic-authentication typescript angular

24
推荐指数
1
解决办法
4万
查看次数

angularjs应用程序可以用硒自动化吗?如果是的话,我们为什么要使用量角器?

我知道我们可以使用Selenium自动化AngularJs应用程序.但是我们有一个单独的E2E测试框架,它是用于AngularJs应用程序自动化的Protractor.

任何人都可以帮助我理解为什么我们应该使用量角器?为什么不选择硒?

testing selenium angularjs selenium-webdriver protractor

18
推荐指数
2
解决办法
5万
查看次数

Angular2:Uncaught(承诺):评估不支持报价!在组件中

我有一个具有输入参数的组件:

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'在父组件中删除它时它工作正常,它完美地显示组件的其余部分

typescript angular

17
推荐指数
2
解决办法
2万
查看次数