0

AngularJS のコントローラー間でデータを渡すために、工場でこのビデオをフォローしようとしていましたが、何かがうまくいきません。

JSON ファイルはまだ入っていませんが、テスト用にハードコードされたバージョンを使用しています。

ナビゲーション メニューにリンクを設定する NavController があります。そして、この JSON ファイルからデータを取得し、そのテーブルを作成することを担当する TableController があります。これら 2 つのコントローラーは互いに独立しているので問題ありませんが、ナビゲーション メニューのリンクの一部がテーブルのビューに影響を与え、さまざまな要素をフィルター処理および非表示にできるように変更したいと考えています。また、nav コントローラーの下に検索バーを含めて、テーブル内の投稿を検索したいと考えていますが、何らかの方法でデータに関連付けられていない限り機能しません。

少量のデータを取得して、ファクトリにロードしてみました。

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}} ...?

4

1 に答える 1

2

あなたはそれを正しく注入していません:

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

する必要があります

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

]DataFactory の戻り値にa がないことは言うまでもありません。

于 2014-06-09T21:15:09.177 に答える