在我的應用程序將需要創建一個函數庫,以從不同的組件進行訪問。做這個的最好方式是什麼?我是否需要爲所有功能或類或模塊或組件提供服務?角2個函數庫
在這個庫中,如果我把從一個組成部分,該功能需要在調用訪問變量的函數,這將是可能的嗎?
在我的應用程序將需要創建一個函數庫,以從不同的組件進行訪問。做這個的最好方式是什麼?我是否需要爲所有功能或類或模塊或組件提供服務?角2個函數庫
在這個庫中,如果我把從一個組成部分,該功能需要在調用訪問變量的函數,這將是可能的嗎?
如果它只是一個斷輔助功能組中的一個最簡單的方法是創建您的helper方法的@Injectable服務再注入到這一點,需要他們的任何部件。你也可以提供公共變量,所以它們可以在你的html中訪問。
@Injectable()
export class Helpers {
helper1() { return "hello"; }
helper2(x) { return x + 1 }
}
@Component({
providers: [Helpers],
template: "<div>{{helper1()}}</div>" // will display 'hello'
)}
export class MyComponent {
public helper1: Function = Helpers.helper1;
constructor() {
console.log(Helpers.helper2(5)); // will output '6'
}
}
這對一組簡單的隨機效用函數很有用。如果您需要更深入的內容,請解釋,我們可以提供備用解決方案。
這是偉大的,它是我真正需要的是肯定的。我以這種方式在這裏做了,但發現了一個限制。在我的服務中,我無法訪問組件中的變量,因爲我使用的是模式驅動的表單,在某些需要訪問表單的函數中。是否有可能不發送表單作爲參數? –
啊作爲服務沒有,如果它完全分開,你可以通過參數傳遞,但你說你不想這樣做。如果你需要以一種有意義的方式與組件進行交互,你可能會想創建一個組件類消費這項服務的同時,通過@input和輸出 –
理解父組件進行交互。我會盡力按照這種方式。非常感謝約書亞。 –
非詳細的解答:創建一個服務,導入服務,則調用服務的功能從其他組件 – jhhoff02