0

如何使用HTML代碼中的數據連接角度控制器?使用Angular構建應用程序的組合方法

我有一個服務器端框架,它允許我通過將組件連接在一起來構建應用程序。其中一些組件被轉換成一些HTML標記。其他組件僅爲第一種組件提供數據。這部分的技術細節並不重要。

示例:服務器VideoPlayer和PlayButton上有兩個組件。 PlayButton連接到VideoPlayer。當頁面呈現時,VideoPlayer變爲<div id="the_player" class="flowplayer">...</div>,PlayButton變爲<button data-player-id="the_player">...</button>。所以按鈕的點擊處理程序可以使用data-player-id來查找播放器並使其播放。 VideoPlayer ID(the_player)通過服務器上的連接在組件之間傳遞,因此可以有兩個播放器和多個按鈕,每個按鈕僅控制指定的播放器。請注意,這些連接未在JavaScript代碼中指定,因此更改組件連接不會以任何方式影響JavaScript代碼。

問題:如何使用Angular控制器做這樣的事情? Angular DI太天真了,並且只期望每種服務只有一個實例。我喜歡控制器和HTML DOM之間的雙向綁定,它使我的小部件非常簡單。但是,如何將這個小部件連接到HTML屬性中的數據源呢?

回答

0

使您的服務更加靈活並返回新的播放器實例。

app.factory('player',function(){ 

    var Player = function(){ 

    }; 

    Player.prototype.someMethod = function(){ 

    }; 

    return{ 

     getPlayer: function(){ 
      return new Player(); 
     } 

    }; 
}); 
+0

我不確定這是什麼意思。你能解釋一下嗎?如何創建新玩家有助於連接正確的實例? –

+0

如果我理解正確,您希望獲得單個服務的多個實例。你可以通過使用暴露如上的API的工廠來實現。 – Sprottenwels

+0

是的,我有多個實例。但問題是,如何將正確的實例連接在一起。在某些情況下,此類工廠必須創建新實例,而在其他情況下,它必須返回已存在的實例 –

相關問題