我正在尝试使用SVG制作类似网格的图案。我看到了真正的怪异行为<router-outlet>,当我通过路由使用此代码(例如localhost / test)时,它无法在Safari中加载模式,但使用组件的选择器则可以正常工作。
<defs>
<pattern id="pattern" width="10" height="10">
<path d="M10,0 L10,10 L0,10" fill="none" stroke="#E9E9E9" stroke-width="1"/>
</pattern>
</defs>
<rect id="test" x="10" y="10" width="250" height="250" style="fill: url('#pattern');"/>
Run Code Online (Sandbox Code Playgroud)
这在Chrome浏览器中效果很好,但在野生动物园中却显示黑色矩形。另外,如果我用颜色填充它,那么它也可以在两种浏览器中使用,但是pattern在Safari中不起作用。关于为什么会出现这种问题的任何建议?
我正在学习 angular 的基础知识,但我仍然无法弄清楚如何在同一个文档中多次重用同一个组件。
这是相关代码:
测试模块.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './test.component';
@NgModule({
imports: [ BrowserModule ],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)
test.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'example',
templateUrl: "./test.component.html",
styleUrls: ["./test-common.css"],
})
export class AppComponent {
name = 'Angular';
changeName() {
this.name = "duck";
}
}
Run Code Online (Sandbox Code Playgroud)
测试组件.html
<h1>Hello {{name}}</h1>
<button (click)="changeName()">Click me!</button>
Run Code Online (Sandbox Code Playgroud)
这是主要的 index.html
<!DOCTYPE …Run Code Online (Sandbox Code Playgroud) 升级到 Angular 7 后,我进入parentInjector is deprecated: No replacement了我的代码。由于这显然已被弃用,为什么没有可用的更新,或者 Angular 团队只是错过了在文档中添加它?
我正在使用注入器在 dom 中动态添加组件。
const factory = this.cfr.resolveComponentFactory(modalClass);
const ref = factory.create(this.vcr.parentInjector);
Run Code Online (Sandbox Code Playgroud) 我想访问组件标记中声明的纯 HTML。假设我有组件
@Component({
selector: 'app-demo'
template: '<some_template></some_template>'
})
export class AppDemoComponent {
}
Run Code Online (Sandbox Code Playgroud)
如果我h1在另一个组件的标签内定义
<app-demo>
<h1> demo text </h1>
</app-demo>
Run Code Online (Sandbox Code Playgroud)
如何访问 中的 h1 元素AppDemoComponent?
编辑: 这个问题与 ViewChild 无关,因为 ViewChild 从组件的当前模板获取信息。我询问组件标签是否在不同的文件中被调用并且该标签具有 HTML 元素,那么如何访问它。
我没有在 Angular 项目中使用 HttpIntercepter,并且我想在出现错误时检索一些自定义响应标头。我{ observe: 'response' }在 POST API 调用中尝试过:
post(url, data = ''): Observable<any> {
url = this.baseApiUrl + url;
const headers = this.createHttpHeaders();
const body = JSON.stringify(data);
return this.http.post(url, body, {headers: headers, observe: 'response'}).pipe(catchError(HttpClientHelper.handleError));
}
Run Code Online (Sandbox Code Playgroud)
但我只收到 4 个标头:
error.headers.keys().map( (key) => console.log(key + ':' + error.headers.get(key)));
回报
cache-control: no-cache, no-store, max-age=0, must-revalidate
content-length: 0
expires: 0
pragma: no-cache
但是,x-不会返回带有前缀的自定义响应标头。是否有任何配置可以检索自定义响应标头?
我有以下对象JavaScript.我很困惑如何访问object.demo()和object.demo.inner().该object.demo.inner()工作的罚款,但object.demo不工作.我要求名称应该相同.为什么函数不会在这里超载?
var object = {
// object.demo()
demo: function(str, pathStr) {
console.log('function 1')
},
demo: {
// object.demo.inner()
inner: function () {
console.log('inner')
}
}
}
object.demo.inner() //working
object.demo() //not working
Run Code Online (Sandbox Code Playgroud)