【问题标题】:Trying to pass data between controllers in AngularJS试图在AngularJS中的控制器之间传递数据
【发布时间】:2014-06-09 20:58:03
【问题描述】:

我试图在工厂中关注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}} ...?

【问题讨论】:

  • 您的代码中有 javascript 错误。
  • 比如?如果我知道他们是什么,我就不会发布这个问题了。
  • 将您的代码放入 plunkr 或 jsfiddle 会指出这一点..
  • 我一直在 plunkr 中编写我的代码,并没有发现导致它无法工作的错误。我已经知道它不起作用。我不知道是哪个部分造成的。

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


【解决方案1】:

你没有正确注入它:

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

应该是

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 2015-12-21
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    相关资源
    最近更新 更多