AngularJS をいじり始めましたが、ネストされたサブビューへのルーティングに問題があります。
私のサイトには、次のような基本的な 2 列のレイアウトがあります。
[Main 1] [Main 2] [Main 3]
--------------------------------------
A | Content for A goes into this frame.
B |
C |
D |
E |
メイン メニュー (メイン 1、メイン 2、メイン 3) からページに移動すると、サイド メニュー リンク (a、b、c、d、e) が動的に生成されます。
つまり、main1 リンクに移動すると、リンク/main1
の JSON 配列を返すリクエストが作成されます。
ユーザーがこれらのリンクの 1 つをクリックすると、要求が行わ/main1/a
れ、データがコンテンツ フレームに読み込まれます。
私が現在これを行っている方法は次のとおりです。
index.html:
<body>
<a href="/main1">Main 1</a>
<div ng-view></div>
</body>
app.js:
angular.module('test', [
'test.controllers'
])
.config([
'$routeProvider',
function($routeProvider)
{
$routeProvider
.when('/main1', {
templateUrl: '/partials/main1.html',
controller: 'Main1Ctrl'
})
.when('/main1/:id', {
templateUrl: '/partials/main1.html',
controller: 'Main1Ctrl'
})
}
]);
そして、これは私が立ち往生するところです。私のMain1Ctrl
コントローラーは現在次のようになっています。
angular.module('test.controllers', [])
.controller('Main1Ctrl', [
'$scope',
'$routeParams',
'Data',
function($scope, $routeParams, Data)
{
$scope.submenu = Data.query();
}
]);
私が抱えている問題は、を割り当てる方法です$scope.content
。
URL に ID が指定されていない場合は、リストから最初の ID を取得する前に、サブメニューがレンダリングされるのを待つ必要があります (コンテンツが要求されていない場合は、デフォルトで最初のサブメニュー項目になります)。
ユーザーが URL で ID を指定した場合、/main1
との/main1/:id
リクエストが並行して発生するようにします。ユーザーがコンテンツを表示する前に、メニューが読み込まれるのを待つ必要はありません。
これは、このタイプのレイアウトを処理する良い方法ですか?