2017-10-16 68 views
0

我剛剛收到一位離開我們公司的同事的網絡應用程序項目。該項目是使用Angular2作爲框架構建的,但似乎該工作人員試圖將AngularJS Material用於HTML組件。AngularJS材料組件可以與Angular2一起使用嗎?

根據我的理解,如果我想在AngularJS材料中使用卡組件,我會使用標籤<md-card>和Angular2材質,我會使用標籤<mat-card>。在這個項目中,100%的組件都是'md'組件,這對於Angular2項目來說是沒有意義的。

當我爲項目提供服務時,什麼都沒有出現,我給出了錯誤:'md-card' is not a known element.If 'md-card' is an Angular component, then verify that it is part of this module.這是有道理的,因爲'md-card'不應該是Angular2中已知的元素。

所以我的問題是:是否有可能讓AngularJS Material組件與Angular2一起使用,還是必須重新整理整個項目中的所有HTML?

+0

選中此項[angular-material-prefix-updater](https://npm.runkit.com/angular-material-prefix-updater) –

回答

1

您將不得不同時運行這兩個框架才能使其工作。雖然這當然是可能的,但它通常是不希望的,特別是如果AngularJS應用程序和Angular 2+應用程序結束和開始的位置之間沒有明確的分隔(例如,如果您要遷移AngularJS應用到Angular 4)。 AngularJS組件圍繞Angular 2+應用程序傳播看起來並不是一個理想的情況。

這裏有一些其他問題:

  • 組件名稱可能發生衝突
  • 路由可以用AngularJS部件和角度2+組件之間的相互
  • 通信干擾很難

我有兩個建議。

  1. 要麼取消AngularJS的依賴關係,並在前同事之後清理。
  2. 或者,在Angular2 Material材質組件周圍創建薄的包裝組件,它與AngularJS材質組件具有相同的名稱和簽名。這隻有在組件的工作方式有些類似時纔有可能。

我推薦第一個建議,因爲後者可能只適用於最簡單的組件。