具有不同模板的Web App(AngularJS)

时间:2016-03-31 14:50:43

标签: javascript angularjs web-applications

我需要创建一个可以处理不同模板的Web应用程序(相同的类但具有附加字段/功能)。我使用AngularJS。

对于所有css方面,我使用SASS。 对于HTML部分,我使用ng-include of AngularJS。 但我不知道JS部分应该使用什么。我可以为每个模板提供相同的js文件,但是如果有更改,我需要更改所有文件。我所寻找的是一个框架/工具,它允许我有一个基本的js文件并加载来自其他文件的额外内容(如AngularJS中的ng-include)。

提前致谢

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找ngRouteui-router。它们是允许您在应用程序中创建路径的组件。这意味着您可以定义一个包含HTML文件和Controller关联的路由。

看一下两者的文档。

这是使用ngRoute:https://jsfiddle.net/relferreira/t36xa01c/

的示例

HTML:

<div data-ng-app="app">

   <ul class="nav navbar-nav" id="subject">
     <li><a href="#/">Main</a></li>
     <li><a href="#/detail">Detail</a></li>
  </ul>
  <div ng-view></div>

</div>

<强> JS:

angular.module('app', ['ngRoute']);

angular.module('app')
    .config(config)
    .controller('MainController', mainController)
  .controller('DetailController', detailController);


config.$inject = ['$routeProvider'];
function config($routeProvider){

    $routeProvider.when('/',{
        template:'<h1>{{mainVm.title}}</h1>',
        controller:  'MainController as mainVm'
    })
    .when('/detail',{
         template:'<h1>{{detailVm.title}}</h1>',
        controller:  'DetailController as detailVm'
    })
    .otherwise({
        redirectTo:"/"
    });
 }

mainController.$inject = ['$scope'];

function mainController($scope){

    var vm = this;

    vm.title = 'Main'

}

detailController.$inject = ['$scope'];

function detailController($scope){

    var vm = this;

    vm.title = 'Detail'

}