直接从服务器呈现特定路径的模板

时间:2013-07-11 09:15:59

标签: angularjs

在angular.js应用程序中使用路由时,是否可以直接从服务器呈现特定路径的模板,然后将控制器附加到它?

例如,我有一个带登录屏幕的应用程序和一个在用户登录时显示某些内容的屏幕。

  • 当用户没有登录并打开应用程序时,如果我可以直接从服务器呈现登录路径的模板然后将正确的控制器附加到它,那将会很酷。这样用户可以直接获得反馈,而不必等到angular.js在页面显示任何内容之前被引导。
  • 当用户登录并打开应用程序时,我想直接从服务器呈现内容页面的模板,然后将控制器连接到它,就像不使用angular中的路由一样。 js(例如ng-controller)。这个页面上的一些东西会被淹没,因为在显示任何有用的东西之前它需要连接到它的控制器。

我很安静的角度,我只是尝试使用angular.js和路由api。但是在我的测试应用程序中,当我打开它时,它首先显示什么,然后当角度被引导时,它呈现“/”路线的视图。我想直接显示视图,因为某些信息不需要连接到它的控制器。我可以使用ng-cloack或ng-bind隐藏的其他东西。但这样会更清洁。

没有人知道如何实现这一目标吗?如果我的解释仍然有点不清楚,请告诉我。我发现很难解释这个...

亲切的问候,

大安

1 个答案:

答案 0 :(得分:0)

老实说,我从未尝试过这个解决方案,但我猜控制器模板不一定是静态文件。
您需要提供模板的路径,但可以动态创建 例如:

angular.module('myApp', ['myApp.filters', 'myApp.services', 'myApp.directives', 'myApp.controllers']).
  config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/login', {templateUrl: 'partials/login.php', controller: 'LoginCtrl'});
    $routeProvider.when('/logout', {templateUrl: 'partials/logout.php', controller: 'LogoutCtrl'});
    $routeProvider.otherwise({redirectTo: '/login'});
  }]);

login.php和logout.php必须返回一个valide AngularJS模板 我从来没有试过这个,但它应该有用 我不知道这是否是Angular的做事方式。