使用Angular构建应用程序的组合方法

时间:2014-02-08 13:12:25

标签: javascript angularjs architecture dependency-injection object-composition

如何使用HTML代码中的数据连接角度控制器?

我有一个服务器端框架,它允许我通过将组件连接在一起来构建应用程序。其中一些组件转换为一些HTML标记。其他组件仅为第一类komponents提供数据。这部分的技术细节并不重要。

示例:服务器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属性中寻址的数据源?

1 个答案:

答案 0 :(得分:0)

让您的服务更灵活,并返回新的播放器实例。

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

    var Player = function(){

    };

    Player.prototype.someMethod = function(){

    };

    return{

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

    };
});