我有一個工廠,有一系列需要能夠互相調用的原型。問題是,在使用ng-click
時,引用「this」正被應用於html模板而不是原始工廠類。NG-Click角度工廠原型解離
下面是一個例子:
angular.factory('myFactory', function(){
function FactoryA(){}
FactoryA.prototype.hello = function(){ console.log('Hello') };
FactoryA.prototype.useHello = function(){ this.hello() };
return FactoryA;
}
控制器將設定出廠到$範圍變量 「myFactory」。
的ng-click
將被稱爲像這樣從HTML模板:
<button type="button" ng-click="myFactory.useHello()">Hello</button>
的問題是,「這個」,在myFactory.useHello的情況下是由HTML模板引用取代,失去了它的鏈接FactoryA和其他原型。
如何保持與工廠類和其他原型相關的ng-click函數?
公開您的示波器的服務/工廠通常被認爲是不好的做法。正是因爲這個原因,通過數據綁定所做的任何更改不僅會傳播回控制器中的服務,還會傳播到您的應用程序中的所有使用(即服務不是工廠作爲其單個實例)。您應該在控制器中創建一個與服務交談的點擊處理程序。您也可以綁定工廠功能的上下文。 – ste2425
您可以將代碼添加到您在示波器中創建myFactory的位置嗎?我認爲你錯過了「新」。 – Victor
只是爲了解釋一下,當我使用angular來建立動態網站和應用程序的用途時,我理解數據綁定工廠到控制器的問題。爲了我的目的,我需要工廠在供應方面是完全動態的。我使用工廠作爲動態類來嚮應用程序提供某些「依賴性」,這些「依賴性」是基於將Java系統加載到應用程序的服務器端所需的。在應用程序中的不同服務器端進程之間切換將使用運行它所需的依賴性來更新應用程序。 – BrentShanahan