小编Mik*_*son的帖子

角度路由始终重定向到主页

我花了太多时间在这个看似简单的问题上.我有一条路线,page2定义如下:

// app.module.ts
import { Page2Component } from './page2/page2.component';

@NgModule({
  declarations: [
    AppComponent,
    Page2Component
  ],
  imports: [
    BrowserModule, RouterModule.forRoot([
      { path: 'page2', component: Page2Component },
    ])
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

我已经检查过<base href="/">index.html.但是,当我手动输入时http://localhost:4200/page2,我总是被重定向回主页(定义中app.component).

我重复了快速入门指南的时间和次数,但无法理解为什么.我的路线定义出了什么问题?


编辑:我使用全新的应用程序(via ng new test-app)和新page2组件(ng generate component page2)进行了测试.仍然是同样的问题.我现在更加困惑.

routing angular

6
推荐指数
1
解决办法
7817
查看次数

当类具有计算属性时字段初始值设定项的简写

假设我有一个非常简单的类,带有计算属性:

class Person {
  firstName: string;
  lastName: string;

  get fuillName(): string {
    return this.firstName + ' ' + this.lastName;
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个类型的对象Person:

let p: Person = {
  firstName: 'John',
  lastName: 'Smith'
};
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误:

输入'{firstName:string; lastName:string; }'不能赋值为'Person'.类型'{firstName:string;中缺少属性'fuillName'; lastName:string; }".

咦?fullName是一个只读属性.所以我按照这个问题并实现了一个部分初始化器:

constructor(init?: Partial<Person>) {
  Object.assign(this, init);
}
Run Code Online (Sandbox Code Playgroud)

同样的错误.我知道我可以这样做:

let p = new Person();
p.firstName = 'John';
p.lastName = 'Smith';
console.debug(p.fullName);
Run Code Online (Sandbox Code Playgroud)

但是有没有使用JSON语法初始化类的简写?

typescript angular

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

从 DataFrame 插入时获取身份密钥

假设我在 SQL Server 中有下表:

CREATE TABLE Users
(
     UserID          int IDENTITY(1,1) PRIMARY KEY
,    UserName        varchar(50)
,    InsertDate      datetime2 DEFAULT GETDATE()
)
Run Code Online (Sandbox Code Playgroud)

在Python中,我想从DataFrame插入到这个表中并取回UserID我刚刚插入的行

import numpy as np
import pandas as pd
import sqlalchemy as sa

engine = sa.create_engine(...)
df = pd.DataFrame({'UserName': ['Alice', 'Bob']})
df.to_sql('Users', engine, if_exists='append', index=False)
Run Code Online (Sandbox Code Playgroud)

数据正在进入数据库。但是我怎样才能取回UserID我刚刚插入的行呢?我考虑编写一个包装函数,首先插入到临时表中,然后使用 T-SQL 来操作数据并返回我想要的内容。但有没有更简单的方法呢?

注意:无论如何我都无法修改表的架构。我只能在数据库中创建临时表。

dataframe pandas sql-server-2014

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

使用http://对URL进行编码

我知道如何以URL格式编码字符串(笑脸是故意的):

let str = "www.mywebsite.com/.html"
let escapedStr = str.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLPathAllowedCharacterSet())!
print(escapedStr)

// Output:
// www.mywebsite.com/%F0%9F%98%80.html
Run Code Online (Sandbox Code Playgroud)

但如果我依附于http://未转义的字符串,Swift也会逃脱冒号:

let str = "http://www.mywebsite.com/.html"
let escapedStr = str.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLPathAllowedCharacterSet())!
print(escapedStr)

// Output
// http%3A//www.mywebsite.com/%F0%9F%98%80.html
Run Code Online (Sandbox Code Playgroud)

如此简单的http://手动删除和添加,我怎样才能正确地删除这些字符串?我必须处理其他前缀https://,ftp://或者ssh://

swift swift2

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

如何有效地将PDF转换为PNG?

我有以下功能将PDF转换为一系列图像(每页一个图像):

import Quartz

func convertPDF(at sourceURL: URL, to destinationURL: URL, fileType: NSBitmapImageFileType, dpi: CGFloat = 200) throws -> [URL] {
    let fileExtension: String
    switch fileType {
    case .BMP:              fileExtension = "bmp"
    case .GIF:              fileExtension = "gif"
    case .JPEG, .JPEG2000:  fileExtension = "jpeg"
    case .PNG:              fileExtension = "png"
    case .TIFF:             fileExtension = "tiff"
    }

    let data = try Data(contentsOf: sourceURL)
    let pdfImageRep = NSPDFImageRep(data: data)!
    var imageURLs = [URL]()

    for i in 0..<pdfImageRep.pageCount {
        pdfImageRep.currentPage = i

        let width = pdfImageRep.size.width …
Run Code Online (Sandbox Code Playgroud)

pdf macos swift

2
推荐指数
1
解决办法
1741
查看次数

将标准输入重定向到标准输出

假设我有一个简单的 C 程序,可以将 2 个数字相加:

#include <stdio.h>

int main(void) {
    int a, b;
    printf("Enter a: "); scanf("%d", &a);
    printf("Enter b: "); scanf("%d", &b);

    printf("a + b = %d\n", a + b);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我没有在每次执行时都输入终端,而是将a和的值输入b到一个文件中:

// input.txt
10
20
Run Code Online (Sandbox Code Playgroud)

然后我重定向stdin到这个文件:

./a.out < input.txt
Run Code Online (Sandbox Code Playgroud)

该程序可以运行,但其输出有点混乱:

Enter a: Enter b: a + b = 30
Run Code Online (Sandbox Code Playgroud)

有没有办法将 stdin 重定向到 stdout 以便输出看起来好像用户手动输入了值,即:

Enter a: 10
Enter b: 20
a + b = 30
Run Code Online (Sandbox Code Playgroud)

c stdin stdout

2
推荐指数
1
解决办法
124
查看次数

标签 统计

angular ×2

swift ×2

c ×1

dataframe ×1

macos ×1

pandas ×1

pdf ×1

routing ×1

sql-server-2014 ×1

stdin ×1

stdout ×1

swift2 ×1

typescript ×1