首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为网站制作2个基本模板的经验

为网站制作2个基本模板的经验
EN

Stack Overflow用户
提问于 2015-07-21 23:17:35
回答 1查看 44关注 0票数 1

我了解如何使用ng-view制作一个基本的单页应用程序,并将模板路由到index.html中。但是,我想将网站分为主页部分(视图:主页,关于,注册,登录),然后当用户登录时,他们进入一个仪表板,其中有自己的一组视图。仪表板(/ Dashboard /user:id)和主页部分(/、/about等)会有单独的基本模板。

这只是两个完全不同基础模板的独立应用程序吗?有没有人有这样的设置经验?

EN

回答 1

Stack Overflow用户

发布于 2015-07-21 23:40:41

如果您正在讨论仅更改视图,则可以使用$routeProvider来定义模板、控制器等。在https://github.com/angular-ui/ui-router上查看ui-route“嵌套状态和视图”

代码语言:javascript
复制
$routeProvider
  .when('/', {
    templateUrl: 'template/home/home.tpl.html',
    controller: 'LomeCtrl',
    controllerAs: 'vm'
  })
  .when('/dashboard/user:id',{
    templateUrl: 'template/dashboard/dashboard.tpl.html',
    controller: 'dashboard',
    controllerAs: 'vm'
  })
  .otherwise({
    redirectTo: '/'
  });

另一种方法是创建一个提供程序,根据用户登录状态显示模板。

代码语言:javascript
复制
angular.module('myApp', ['ngRoute', 'loginService'])
  .config(['$routeProvider', 'loginCheckerProvider', function($routeProvider, loginCheckerProvider) {

    $routeProvider.
    when('/', {
        templateUrl: (loginCheckerProvider.isLoged()) ? 'loggedin.html' : 'loggedout.html'
          //controller: 'aboutCtl',
      })
      .otherwise({
        redirectTo: '/'
      });

  }]);

和提供者:

代码语言:javascript
复制
(function () {

  'use strict';

    function loginChecker() {
      this.$get = angular.noop;

      //Do your logics to check if user is loggedin and add the result to the return below
      //toggle the return below between true and false
      this.isLoged = function(){
        return true;
      }
    }

    angular.module('loginService',[])
      .provider('loginChecker', loginChecker);

})();

我创建了一个plunker进行测试,它正在工作。要测试它,请转到loginservice.js文件并将返回结果切换为true/false,您将看到模板正在更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31543141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档