相关疑难解决方法(0)

angular-route和angular-ui-router之间有什么区别?

我打算在我的大型应用程序中使用AngularJS.所以我正在寻找合适的模块.

是什么区别(角route.js)ngRouteUI的路由器(角-UI-router.js)模块?

在使用ngRoute的许多文章中,使用$ routeProvider配置路由.但是,当与ui-router一起使用时,路由配置为$ stateProvider和$ urlRouterProvider.

我应该使用哪个模块来提高可管理性和可扩展性?

javascript angularjs angularjs-routing angularjs-module angular-ui-router

1064
推荐指数
12
解决办法
26万
查看次数

带有requirejs的angular-ui-router,延迟加载控制器

你能帮我理解如何在视图之前的下面的例子中加载控制器吗?看起来在尚未加载控制器的情况下立即加载视图.

//app.js
$stateProvider.state('index', {
    url: "/",
    views: {
        "topMenu": {
            templateUrl: "/Home/TopMenu",
            controller: function($scope, $injector) {
                require(['controllers/top-menu-controller'], function(module) {
                    $injector.invoke(module, this, { '$scope': $scope });
                });
            }
        }
    }
});

//top-menu-controller.js
define(['app'], function (app) {
    app.controller('TopMenuCtrl', ['$scope', function ($scope) {
        $scope.message = "It works";
    }]);
});

//Home/TopMenu
<h3>TopMenu</h3>
<div ng-controller="TopMenuCtrl">
    {{message}}
</div>
Run Code Online (Sandbox Code Playgroud)

requirejs angularjs angular-ui-router

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

角度UI-Router中的延迟加载模板和控制器

我试图在我的UI-Router router.js文件中懒惰加载控制器和模板,但是我对模板有困难.

控制器正确加载,但在加载之后,我们必须加载模板,这就是出错的地方.

在ocLazyLoad加载控制器之后,我们解析了一个Angular promise,它也包含在templateProvider中.问题是在文件加载完成后返回promise(templateDeferred.promise),而promise作为对象返回.

.state('log_in', {
    url: '/log-in',
    controller: 'controllerJsFile',
    templateProvider: function($q, $http) { 
      var templateDeferred = $q.defer();

        lazyDeferred.promise.then(function(templateUrl) {
        $http.get(templateUrl)
        .success(function(data, status, headers, config) {
            templateDeferred.resolve(data);
        }).
        error(function(data, status, headers, config) {
            templateDeferred.resolve(data);
        });
  });
  return templateDeferred.promise;
 },
 resolve: {
    load: function($templateCache, $ocLazyLoad, $q) {
        lazyDeferred = $q.defer();

        var lazyLoader = $ocLazyLoad.load ({
          files: ['src/controllerJsFile']
        }).then(function() {
          return lazyDeferred.resolve('src/htmlTemplateFile');
        });
        return lazyLoader;
    }
 },
 data: {
  public: true
 }
})
Run Code Online (Sandbox Code Playgroud)

lazy-loading requirejs angularjs angular-ui-router

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