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

是的,我有多个实例。但问题是,如何将正确的实例连接在一起。在某些情况下,此类工厂必须创建新实例,而在其他情况下,它必须返回已存在的实例 –

相关问题