将数据推送到angularjs外部?

时间:2013-09-12 07:11:47

标签: javascript angularjs

似乎angularjs只能与每个模块内部的数据进行交互,但是任何外部javascript都无法更改数据或访问angularjs服务。

例如,如果我有一些非angularjs代码和一个并行运行的angularjs模块,并且非angularjs代码需要更新angularjs使用的一些数据(例如通过调用服务方法),是否有这样做的方法?

另一个例子,假设我正在使用Comet并从服务器推送通知。因此,例如,如果用户收到新消息,我希望能够从服务器推送该消息(例如,通过http-chunk响应发送一些javascript代码,并且执行该代码)。我怎么能将这些通知传递给我的角度服务?

1 个答案:

答案 0 :(得分:1)

您可以通过非角度js达到角度范围:

angular.element(document.getElementById('page-data')).scope().$apply(
    function(scope)
    {
        scope.yourScopeMethod( argument1, argument2, ... );
    });

其中:

document.getElementById('page-data')

是包含角度视图的html元素。