我想有這樣的事情裏面調用函數?功能外ngOnInit
回答
我不確定你爲什麼要這樣做?但是,這是什麼會使其工作:
您的組件內部,聲明一個變量
func : any;
內。然後ngOnInit,
ngOnInit(){
...
func = function test() {
...
}
}
然後調用另一個函數內部的功能在同一組件使用,
function someOtherFunction()
{
this.func();
}
這是完全錯誤的。首先,你不能用'let'在類中聲明一個屬性。沒有「任何」類型,只有「任何」。如果使用'function'語法創建'func',則需要保存對'this'的引用 - 您應該使用箭頭函數。你不能用'function(){func()}'調用一個函數。這是一個函數定義,而不是一個調用。 –
@LazarLjubenović,你絕對正確。我沒有運行代碼。我的意思是你需要使用一個類成員變量來存儲你在ngOnInit()方法中定義的函數的一個實例,以便你可以從另一個函數調用它。我會更正我的回答 – Sanjucta
@LazarLjubenović,關於你的評論關於必須保存對此的引用,就Typescript而言這是不正確的 – Sanjucta
功能你ngOnInit
需要定義s被存儲在類實例中的某個地方,以便再次調用它。這意味着,你需要將其存儲在一個屬性。
class Component {
private fn: Function; // or a better type if you know it
}
現在,ngOnInit
內,一個函數分配給該變量。您可能想要使用this
的箭頭功能作爲您(可能)期望的效果。
class Component {
private fn: Function; // or a better type if you know it
public ngOnInit(): void {
this.fn =() => {} // create it here
}
}
發生這種情況後,您可以從任何地方通常調用fn
函數。
this.fn()
不過要小心,如果你嘗試,你會得到一個運行時錯誤OnInit
勾踢之前執行上面的線。例如,如果你使用的fn
鉤OnChanges
(將一次OnInit
掛鉤之前調用)裏面,你需要小心:
if (this.fn) {
this.fn()
}
- 1. 'return'外功能
- 2. 外功能
- 3. 功能選擇功能外使用
- 4. 通在功能之外的功能
- 5. 在外部功能
- 6. 例外與功能
- 7. 改變外功能
- 8. Angular 2 hooks ngOnInit
- 9. 「本」在ngOnInit
- 10. Ionic2 ngOnInIt on navigation pop
- 11. 通話功能的外殼
- 12. 的Python:外功能錯誤
- 13. C++定義功能外
- 14. Twig_Error_Runtime例外與 「URL」 功能
- 15. document.evalute功能,給予例外
- 16. 意外的標記 '功能'
- 17. 從功能外蟒蛇
- 18. 使用外部功能LINQ
- 19. Javascript變量功能之外?
- 20. 意外的T_Public功能。
- 21. PostgreSQL的功能外鍵
- 22. 功能調用外彈出
- 23. 功能NHibernate例外集合
- 24. PHP Override外部類功能
- 25. 額外的部分功能
- 26. Node.JS變量外功能
- 27. Javascript單擊功能例外
- 28. VBA複製外觀功能
- 29. 的Jquery/JS:調用jQuery的功能的功能外jQuery的功能
- 30. Angular2 - 服務未在構造函數和ngOnInit之外定義?
這是不可能的,你不能有內部功能的功能 –
@RahulSingh不正確。完美有效的嵌套功能。 – Saravana
@Saravana它可能我得到它使用函數聲明。但不是護城河優雅的方式。那麼最好宣佈單獨的方法帶走模塊化我感覺。它變成了一種封閉形式 –