AngularJSについてあなたと議論することができます。それはまさにあなたが必要とするものです
ng-view
Dashboard.htmlはいくつかのディレクティブがアタッチされたレイアウトですが、ディレクティブを使用する場合はAngularJsに力があります
ここに例があります:
Dashboard.js
var app = angular.module("modularApp",[]);
app.config(['$routeProvider', "$locationProvider", function routes($routeProvider, $locationProvider) {
$routeProvider.when('/dashboard', {
controller:'HomeCtrl',
templateUrl:'templates/home.html'
});
$routeProvider.when('/moduleA', {
controller:'ModuleACtrl',
templateUrl:'templates/moduleA.html'
});
$routeProvider.when('/moduleB', {
controller:'ModuleBCtrl',
templateUrl:'templates/moduleB.html'
});
$routeProvider.otherwise({redirectTo: "/dashboard"});
}]);
テンプレート/ダッシュボード.html
<html ng-app="modularApp">
<head>
<!--.... include angular minified js file and what else you need...-->
<script type="text/javascript" src="dashboard.js"></script>
<script type="text/javascript" src="moduleACtrl.js"></script>
<script type="text/javascript" src="moduleBCtrl.js"></script>
</head>
<body>
<a ng-href="#/moduleA">Open Module A View</a>
<a ng-href="#/moduleB">Open Module B View</a>
<!-- Add widgets header menus .... -->
<ng-view></ng-view>
</body>
</html>
moduleACtrl.js
var app=angular.module("modularApp");
app.controller("ModuleACtrl",function($scope){
$scope.scopeValue="Hellow from view";
});
moduleBCtrl.js
var app=angular.module("modularApp");
app.controller("ModuleBCtrl",function($scope){
$scope.scopeValue="Hellow from another view";
});
テンプレート/moduleA.html
<div>{{scopeValue}} in module A</div>
テンプレート/moduleB.html
<div>{{scopeValue}} in module B</div>
これだけでなく、Angularを使用してより複雑なことを行うことができます。すべてはあなたのニーズに依存します。特別な要件はありますか:)
また、ng-viewなどの独自のディレクティブを作成し、独自の$routeサービスと$routeProviderを使用して、いくつかのルートがurlに一致したときに動的にロードするcssとjavascriptを追加できます。
したがって、上記のルーティングテーブルの代わりに、
app.config(['$myRouteProvider', "$locationProvider", function routes($routeProvider, $locationProvider) {
$routeProvider.when('/dashboard', {
javascript:'javascript/dashboard.js',
templateUrl:'templates/dashboard.html',
cssfile: 'css/dashboard.css'
});
$routeProvider.when('/moduleA', {
javascript:'javascript/moduleA.js',
templateUrl:'templates/moduleA.html',
cssfile: 'css/moduleA.css'
});
$routeProvider.when('/moduleB', {
javascript:'javascript/moduleB.js',
templateUrl:'templates/moduleB.html',
cssfile: 'css/moduleB.css'
});
$routeProvider.otherwise({redirectTo: "/dashboard"});
}]);
しかし、それは、私のフランス語の愚かさを許してください。同様のことを実現するためにRubyonRailsで試したライブラリがいくつかありますが、バックエンドはコンテンツまたはコンテンツの一部をレンダリングしています。しかし、どのバックエンドを使用しているかわかりません。とにかくレールに切り替えることに興味があります。