似乎angularjs只能与每个模块内部拥有的数据交互,但是任何外部javascript都无法更改数据或访问angularjs的服务。
例如,如果我有一些非angularjs代码和一个angularjs模块并行运行,而非angularjs代码需要更新angularjs使用的一些数据(例如调用服务方法),那么有什么方法可以做到吗?
另一个例子,假设我正在使用Comet并从服务器上推送通知。因此,例如,如果用户收到一条新消息,我希望能够从服务器上推送这方面的通知(例如,通过http-块响应发送一些javascript代码,并执行该代码)。我如何将这些通知传递给我的services服务?
发布于 2013-09-12 07:19:29
您可以通过这样的方法达到非角度js的角度范围:
angular.element(document.getElementById('page-data')).scope().$apply(
function(scope)
{
scope.yourScopeMethod( argument1, argument2, ... );
});其中:
document.getElementById('page-data')是包含角度视图的html元素。
https://stackoverflow.com/questions/18757722
复制相似问题