0

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

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

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

4

1 回答 1

1

您可以通过非角度 js 达到角度范围,如下所示:

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

在哪里:

document.getElementById('page-data')

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

于 2013-09-12T07:19:29.120 回答