javascript - angularjs在javascript中获取全局范围变量

标签 javascript angularjs angularjs-scope

我正在尝试通过 Angularjs Controller 中的 ajax 请求从服务器获取数据,然后通过另一个 javascript 文件访问数据。我正在使用 Canvas 并尝试通过我的 angularjs Controller 获取数据库中存储的数据。

我将数据存储在我的 angularjs Controller 的全局范围变量中,并且我尝试通过我的 canvas javascript 文件访问它。

我知道您可以像这样访问 Controller 方法:

var scope = angular.element($('#Controller')).scope();
scope.$apply(function(){
      scope.getFunc();           
});

但是,每当我尝试访问全局范围变量时,它都会在名为 [remove: function] 的对象中返回,并且我不知道如何从该对象获取数据。

是否有更好的方法从 Angularjs 获取全局范围变量?感谢您的帮助。

最佳答案

这是一个展示如何在 Controller 之间共享数据的插件。我在这里链接了这个骗子。

服务是一个单例对象,您可以在其中跨 Controller 存储和检索数据。这通常是共享数据的首选方式。

http://plnkr.co/edit/bsFxDn3RQCGlmZLJMAil?p=preview

服务代码

fasterApp.service('fasterService', function($rootScope){
 var serv = {
        name: '', age: '', place: '', gender: '',
        addData: function (n, a, p, g) {
            this.name = n;
            this.age = a;
            this.place = p;
            this.gender = g;

            $rootScope.$broadcast('dataAdded');
        }
    };
    return serv;
})

添加数据时调用添加数据。

以下代码位于第二个 Controller 中

$scope.$on('dataAdded', function () {
    $scope.name = fasterService.name;
    $scope.age = fasterService.age;
    $scope.place = fasterService.place;
    $scope.gender = fasterService.gender;
});

添加数据后,第二个 Controller 会收到 dataAdded 事件。

关于javascript - angularjs在javascript中获取全局范围变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24864526/

相关文章:

angularjs - kendo-ui网格内联编辑angularjs

javascript - 更新指令的 templateurl 内容绑定(bind)范围的属性更改

javascript - 通过 Angular 自定义指令传递数据

angularjs - AngularJS中没有隔离范围的指令范围属性

javascript - 在 jQuery 中使用一键隐藏/显示 div

javascript - BrowserSync CSS 注入(inject) + runSequence

javascript - 在 IE9 中将用户指定的文件作为字符串读取

javascript - appendTo后如何让一个div飞到另一个div

javascript - Angular.js - 根据用户输入切片 json 请求

javascript - 向 Angular 指令提供数据(来自文件或数据库)