-1
我正在使用.replace()
Angular 4中的JS函數在其中一個字符串上剝去幾個字符。在組件中,我寫了下面的代碼:Angular 4無法讀取屬性'取代'未定義的錯誤
@Component({...})
export class SomeComponent implements OnInit {
routerUrl: string = '';
constructor() {}
ngOnInit() {
this.routerUrl = "SOME_DYNAMICALLY_RETRIEVED_STRING";
this.routerUrl = this.routeUrl.replace(/[`[email protected]#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi, '');
console.log(this.routerUrl);
}
但代碼拋出一個錯誤
ERROR TypeError: Cannot read property 'replace' of undefined
at SafeSubscriber._next ...
請幫我解決這個問題。
添加的代碼
export class CourseComponent implements OnInit {
routeUrl: string = '';
constructor(private renderer: Renderer2, private route: ActivatedRoute) {}
ngOnInit() {
this.route.params.subscribe((params: Params) => {
this.routeUrl = params[':name'];
this.routeUrl = this.routeUrl.replace(/[`[email protected]#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi, '');
console.log(this.routeUrl);
})
}
}
'replace'不會在原地工作(它不」 t mutate)。你必須分配它。 'this.routeUrl = this.routeUrl.replace(...)' –
我懷疑錯誤來自代碼中的其他地方,因爲錯誤消息的SafeSubscriber._next部分。或者,在執行代碼時,不會設置SOME_DYNAMICALLY_RETRIEVED_STRING。順便說一句,那個正則表達式應該做什麼? –
@Kinduser是的,但是這並不能解釋他得到的錯誤。 –