AngularJSを使用して動的なWebアプリケーションを構築しています。 1つのテンプレートに複数のng-view
を含めることは可能ですか?AngularJS - 1つのテンプレートで複数のビューを表示
答えて
ng-view
を1つだけ持つことができます。
コンテンツを変更するには、ng-include
、ng-switch
、またはrouteProviderを使用して異なるコントローラとテンプレートをマッピングする方法があります。
マッピングコントローラとテンプレートはng-view要素全体を置き換えるでしょうか? – zx1986
ウィジェットのコンテンツを動的に変更するのはどうですか?あなたはウィジェットのためのビューとそのウィジェットのためのコントローラとそのウィジェットのためのモデルを作成したくないですか? –
ビューを使用することをお勧めしますか? 'ng-show'と' ng-hide'でdivを定義し、変数を使って可視性をコントロールする方が良いのでしょうか?なぜなら時々私は複数のコンポーネントを隠す/表示することがあるからです – SomethingSomething
通常のng-view
モジュールを使用すると、複数のダイナミックテンプレートを持つことはできません。
ただし、this projectはそうすることができます(ui-router
をご覧ください)。
angular-uiは(近い)将来の良い選択のように思えますが、まだ生産用として非常に不安定です –
UI-ルータは助けることができるプロジェクトです。それのhttps://github.com/angular-ui/ui-router 一つが特長です複数の名前付きビューで
UI-ルータは、多くの機能を持っており、あなたが取り組んでいる場合、私はそれを使用してことをお勧めします高度なアプリ。
複数の名前付きビューhereのドキュメントを確認してください。
残念なことにui-routerのreadmeによると: 注:UI-Router現在開発中です。そのため、このライブラリは十分にテストされていますが、APIが変更される可能性があります。変更ログに続いてそれに応じて使用法を変更するのが快適である場合にのみ、本番アプリケーションでの使用を検討してください。 – trainoasis
@trainoasisこれは複数のプロジェクトで使用され、非常に安定していると思われますが、今まではAPIを変更することについて問題はありませんでした。 –
私はあなたがただ一つのことを達成することができると信じていますng-view
。メインテンプレートでは、サブビューのためにng-include
セクションを持つことができます。メインコントローラでは、各サブテンプレートのモデルプロパティを定義します。自動的にng-include
セクションにバインドされます。これは、あなたが、それは内容を変更し、ドロップダウンリストからテンプレートを変更した場合の例でng-include
documentation
で与えられた例を確認することができます
複数ng-view
を持つと同じです。ここでは、1つのメインng-view
があり、ドロップダウンを選択して手動でサブコンテンツを選択するのではなく、メインビューが読み込まれたときと同じように行います。
あなたが説明したように、UI-Routerのような解決策がない場合、ng-includeは実用的な代替手段です。 ng-includeが達成できないのは、URL(state)駆動のマルチビューであり、$ routeは現在のURLに基づいて異なるビューを動的にレンダリングできません。私たちはAngularの腕をねじり、 'ng-include' [documentation](https://docs.angularjs.org/api/ng/directive/ngInclude)の例のように、コントローラ内のカスタムロジックを使用することで、それは望ましいアプリケーションアーキテクチャのパターンではなく、UI-Routerは正しいタイプのソリューションです。 – Yiling
コメントに@Yilingをプラスします。 ng-includeを使用するのが回避策です。 –
複数のビューまたはネストされたビューを持つことは可能です。しかし、ng-viewではありません。
角度のプライマリルーティングモジュールは複数のビューをサポートしていません。 しかし、あなたはui-routerを使うことができます。これはサードパーティのモジュールで、Github、angular-ui/ui-router、https://github.com/angular-ui/ui-router経由で入手できます。現在、新しいバージョンのngRouter(ngNewRouter)も開発中です。現時点では安定していません。 簡単なスタートアップの例をui-routerで提供します。 ビューを使用して、ビューの名前を付け、レンダリングに使用するテンプレートとコントローラを指定できます。 $ stateProviderを使用すると、ビューのプレースホルダを特定の状態にレンダリングする方法を指定する必要があります。
<body ng-app="main">
<script type="text/javascript">
angular.module('main', ['ui.router'])
.config(['$locationProvider', '$stateProvider', function ($locationProvider, $stateProvider) {
$stateProvider
.state('home', {
url: '/',
views: {
'header': {
templateUrl: '/app/header.html'
},
'content': {
templateUrl: '/app/content.html'
}
}
});
}]);
</script>
<a ui-sref="home">home</a>
<div ui-view="header">header</div>
<div ui-view="content">content</div>
<div ui-view="bottom">footer</div>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-ui-router/release/angular-ui-router.js">
</body>
このサンプルでは、angularjsとangular-ui.routerを参照する必要があります。
$ bower install angular-ui-router
ありがとうございますこれは素晴らしいです!これは、角度ui/ui-routerのGithubリポジトリhttps://github.com/angular-ui/ui-routerにあります。モジュールを入手しました。 – totallytotallyamazing
なぜそうする必要があるのか分かりません。ヘッダー/フッターを挿入して内容を確認するのはなぜでしょうか? – user441521
- 1. テンプレート2つのモデルを1つのビューで表示 - バックボーン/マリオネット
- 2. 複数のTableViewを1つのビューで表示 - データソースの配列?
- 3. 複数のテーブルビューを1つのビューで表示
- 4. 複数のMPMoviePlayerControllerを1つのビューで表示
- 5. 1つのXIBファイル(1つのウィンドウ)で複数のビューを表示
- 6. 複数のビューを1つの列に表示
- 7. の表示/非表示テンプレートURLのangularjs
- 8. ASP.NET MVC 4、複数のモデルを1つのビューで表示できますか?
- 9. Oracle表を1つのビューに表示
- 10. asp.netで複数のビューを表示
- 11. Rails複数のビューを1つのビューで作成
- 12. 1つのモデルから複数のビュー
- 13. Django - 1つのビュー、複数のURL?
- 14. 1つのドメインモデル、複数のjsonビュー
- 15. 複数のモデルと1つのビュー
- 16. AngularJS:1サービス複数のモジュール
- 17. KML - 複数のスタイルを1つのプレースメントで表示
- 18. 1つのUIViewControllerで複数のUIViewを表示
- 19. 2つのモデルのデータを1つのビューで表示する
- 20. Android - イベントを他のビューに渡す機能を備えた複数のリスナーを1つのビューに表示
- 21. SharePointディスカッションボードディスカッションスレッドを1つ表示するビュー
- 22. グリッドビューの1つのヘッダーの下に複数の列を表示
- 23. ruby on rails 3、複数のビューを1つのビューにレンダリング
- 24. 単一ビューで複数のビューを表示する問題
- 25. 1つのビューを選択するビューを表示する
- 26. MATLABの1つのFigureに複数の眼図を表示
- 27. 複数の合計をOracleの1つのテーブルに表示
- 28. 1つのファイルの複数のページを表示する
- 29. 複数の部分依存グラフを1つのグラフに表示
- 30. 複数のビューファイルを1つのページに表示する-Rails
まだいくつかのバグで、プルリクエストがあるように思わ:https://github.com/angular/angular.js/pull/1198 – Alp
月Varwigは角度のディレクティブの役割について書いています。それはあなたの質問に対する答えではありませんが、彼のアイデアは良い選択かもしれません:http://jan.varwig。org/archive/angularjs-views-vs-directives/comment-page-1 –
は角度チュートリアルを通過していましたが、まったく同じ質問をしましたが、これは非常に明確ではありませんが、かなり深いコンセプトのようです。 – qwwqwwq