我想有這樣的事情裏面調用函數?功能外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. 外功能
- 2. 通在功能之外的功能
- 3. 在外部功能
- 4. 例外與功能
- 5. 改變外功能
- 6. Angular 2 hooks ngOnInit
- 7. 「本」在ngOnInit
- 8. 功能NHibernate例外集合
- 9. PHP Override外部類功能
- 10. 的Python:外功能錯誤
- 11. document.evalute功能,給予例外
- 12. Node.JS變量外功能
- 13. PostgreSQL的功能外鍵
- 14. 功能調用外彈出
- 15. 使用外部功能LINQ
- 16. C++定義功能外
- 17. 從功能外蟒蛇
- 18. Javascript變量功能之外?
- 19. Ionic2 ngOnInIt on navigation pop
- 20. 功能目錄之外的水豚功能
- 21. 如何評估內部功能與外包Web API功能
- 22. log4javascript IE8意外錯誤「功能attendue」/「預期的功能」
- 23. 無法調用此功能之外的功能Div
- 24. 如何通過該功能外的按鈕修改功能?
- 25. 的JavaScript之外的功能變量更新從內部功能
- 26. Polymer 2.0功能之外的聚合物訪問功能
- 27. 如何從NgOnInit重定向?
- 28. Angular2 ngOnInit沒有觸發
- 29. 如何避免級聯ngOnInit?
- 30. ngOninit not getting called angular 2 express
這是不可能的,你不能有內部功能的功能 –
@RahulSingh不正確。完美有效的嵌套功能。 – Saravana
@Saravana它可能我得到它使用函數聲明。但不是護城河優雅的方式。那麼最好宣佈單獨的方法帶走模塊化我感覺。它變成了一種封閉形式 –