相关疑难解决方法(0)

有没有办法让AngularJS在开始时加载部分,而不是在需要时?

我有这样的路线设置:

var myApp = angular.module('myApp', []).
    config(['$routeProvider', function ($routeProvider) {
    $routeProvider.
        when('/landing', {
            templateUrl: '/landing-partial',
            controller: landingController
        }).
        when('/:wkspId/query', {
            templateUrl: '/query-partial',
            controller: queryController
        }).
        otherwise({
            redirectTo: '/landing'
        });
}]);
Run Code Online (Sandbox Code Playgroud)

我希望能够让angularjs在开始时下载部分内容,而不是在请求时下载.

可能吗?

angularjs

190
推荐指数
4
解决办法
11万
查看次数

推荐可扩展的AngularJS项目结构?

我见过几个AngularJS项目模板:官方网站上的种子项目,Yeoman的生成和AngularFun.

是否有任何其他(非)固定的模板我应该看一下,或者您建议的可扩展AngularJS项目的任何相关模式?

通过可扩展我的意思

  • 能够在自己的文件中分割控制器,指令,过滤器等;
  • 能够按需加载这些文件,而不是让浏览器加载所有内容;
  • 能够拥有共同的跨项目组件(例如,通用指令,过滤器或服务).

architecture templates project angularjs

46
推荐指数
3
解决办法
4万
查看次数

如何在Angular.js中推迟路由定义?

我已经配置了一些在登录之前可供所有用户使用的基本路由:

App.config(function ($routeProvider) {
    $routeProvider.
        when('/login', { templateUrl: 'views/login.html', controller: PageStartCtrl.Controller }).
        otherwise({ redirectTo: '/login' });
});
Run Code Online (Sandbox Code Playgroud)

所以用户唯一能做的就是登录.用户登录后,我想注册其他路由,如下所示:

$http
  .post('api/Users/Login', {   User: userName, Password: userPassword })
  .success(function (response : any) {
    App.config(function ($routeProvider) {
      $routeProvider
        .when('/dashboard', 
              { templateUrl: 'part/dashboard.html', 
              controller: DashboardCtrl.Controller });
  });
Run Code Online (Sandbox Code Playgroud)

但是,我想我应该只调用一次.config方法,因为$ routeProvider是一个对/ login route一无所知的全新实例.进一步的调试向我展示了在解析视图更改时使用$ resourceProvider的第一个实例.

问:以后如何注册路线?

路由和模板动态添加到$ routeProvider的解决方案可能有效,但是非常难看(涉及全局变量nastyGlobalReferenceToRouteProvider).

configuration dynamic url-routing deferred angularjs

33
推荐指数
2
解决办法
1万
查看次数