试图在AngularJS中的控制器之间传递数据

时间:2014-06-09 20:58:04

标签: javascript angularjs factory angularjs-controller angularjs-factory

我试图在工厂上关注this video以便在AngularJS中的控制器之间传递数据,但是有些东西不能正常工作。

虽然我还没有JSON文件,但我正在使用硬编码版本进行测试。

我有一个NavController,负责在导航菜单上填充链接。然后我有一个TableController负责从这个待成为JSON的文件中获取数据并创建一个表。 这两个控制器是相互独立的,这很好,但现在我想改变它,以便导航菜单中的一些链接可以影响表的视图,过滤和隐藏各种元素。我还想在导航控制器下面添加一个搜索栏来搜索表格中的帖子,除非它以某种方式与数据相关联,否则不会起作用。

我尝试将少量数据加载到工厂中:

data.js

var app = angular.module('AppName', []);
app.factory('DataFactory', function(){
    return [{'title':'title',
        'A': '1',
        'B': '2',
        'C': '3',
        'D': '4',
        'E': '5',
        'F': '6';
        },
        {'title':'title',
        'A': '1',
        'B': '2',
        'C': '3',
        'D': '4',
        'E': '5',
        'F': '6';
        };
});

但是现在我正在尝试将DataFactory加载到我的NavController和TableController中,但它无法正常工作。

NavController.js

app.controller('NavController', ['$scope', DataFactory, function($scope){
$scope.links = [
    {'name':'About',
    'URL': '#/about',
    },
    {'name':'Active',
    'URL': '#/active',
    }
];

$scope.data = DataFactory; //This part doesn't seem to be working.

}]);

TableController.js

app.controller('TableController', ['$scope', DataFactory, function($scope){
    $scope.tablecontent = DataFactory; //Not working
}]);

我只是不确定我哪里出错了,为什么我的数据没有被传递给我的控制器。一旦掌握了数据,我也关心如何访问各个部分。我还能简单地使用

吗?

ng-repeat='content in tablecontent' ... {{content.title}} ...

1 个答案:

答案 0 :(得分:2)

你没有正确地注射它:

['$scope', DataFactory, function($scope){

应该是

['$scope', 'DataFactory', function($scope, DataFactory){

更不用说您在DataFactory返回值中缺少]