javascript - 如何从 Angular 中的另一个 Controller 内的 Controller 访问对象

标签 javascript angularjs

我正在尝试从另一个 Controller 内的 Controller 访问对象。 例如:

Controller 1

MyApp.controller('workController', function ($scope) {

    $scope.xList = [
    {name:'test', type:'web', link:'test', image:'iso.jpg'},
    {name:'test', type:'web', link:'test', image:'iso.jpg'},
    ];

});

Controller 2:如何从 Controller 1 控制台记录对象?

MyApp.controller('projectController', function ($scope) {
    console.log('$scope.xList[1]);
});

我也尝试了 $scope.workController.xList[1] 但没有成功。

请帮忙

最佳答案

Angular Controller 的目的是将 View 和服务结合在一起。出于这个原因,他们并不是真的要直接互相交谈。如果您需要在 Controller 之间进行通信,您可以使用共享服务来完成。

MyApp.controller('workController', function($scope, SharedService){
    SharedService.set([
        {name:'test', type:'web', link:'test', image:'iso.jpg'},
        {name:'test', type:'web', link:'test', image:'iso.jpg'},
    ]);
});

MyApp.controller('projectController', function($scope, SharedService){
    console.log(SharedService.get());
});

MyApp.service('SharedService', function(){
    var self = {
        get: function(data){
            return self._data;
        },
        set: function(data){
            self._data = data
        }
    };

    return {
        get: self.get,
        set: self.set
    }
});

关于javascript - 如何从 Angular 中的另一个 Controller 内的 Controller 访问对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30992169/

相关文章:

javascript - 无法获取/进入简单节点文件

javascript - 我可以更改循环中使用的 ID 吗?需要在 6 次迭代中更改 1 个字符

javascript - Div 无法使用 angularjs 正确显示

javascript - 如何设计服务来获取需要多次调用的数据?

javascript - 交替使用 Angular 工厂和服务——没有错误

javascript - new Function(...) 在 Debug模式下在 Chrome 58 中返回 undefined

javascript - 在node js环境中解析Javascript SDK和serverUrl

javascript - 为什么 Angular 绑定(bind)不适用于服务原语

javascript - 如何在单页应用程序中实现 gmail 撰写窗口概念?

javascript - 向 Angular 对象添加属性