使用ui-router

时间:2016-10-20 08:03:39

标签: angularjs

有没有办法使用UI-ROUTER

提供控制器文件的路径

这是我的代码

var kraveln = angular.module('kraveln', ['ui.router' , 'ngMessages' , 'ngDialog'  ]);

kraveln.config(function($stateProvider, $urlRouterProvider) {

    $urlRouterProvider.otherwise('/home');

    $stateProvider
// for home_page
         .state('home', {
            url: '/home',// if home page means
            views: {
                '': 
                { 
                    templateUrl: 'app/views/home_search_page.html',
                    controller: 'app/views/sample_controller.js' // sample controller for  loading file.  
                 },
                'header_part': 
                { 
                    templateUrl: 'app/views/header_one.html'  //load first header
                },
                 'footer_part': 
                { 
                    templateUrl: 'app/views/footer.html'  //load second footer
                }
            }
        })

就像模板网址一样,我们可以加载我试过的控制器网址,但是无法做到这一点

3 个答案:

答案 0 :(得分:1)

首先,Angularjs使用相对地址机制从目录中选择HTML模板。

对于控制器,您需要在index.html中注册/包含所有JS文件。

<script src="app/views/sample_controller.js" />
//....Same for others...

并将其包含在路由器或类似的状态中。

controller: 'SampleController',

希望,您的查询已解决。

答案 1 :(得分:0)

是的,您可以为某个州的每个视图提供特定的控制器。

.state('home',{
          url: '/home',
          views: {
            '': {
              templateUrl: 'app/main/main.html',
              controller: 'MainController',
              controllerAs: 'main'
            },
            'header': {
              templateUrl: 'app/main/header.html',
              controller: 'HeaderController',
              controllerAs: 'header'
            },
            'footer': {
              templateUrl: 'app/main/footer.html'
            }
          }
   })

reference link

答案 2 :(得分:0)

您可以使用In [1]: for e in [1,2,3]: ...: print(e) ...: else: ...: print("else") ...: 1 2 3 else 模块进行延迟加载。

检查样品,https://oclazyload.readme.io/docs/with-your-router

oclazyload