ng路由以读取链接并定位具有相同名称的特定控制器



我使用ng-clickng-view路由我的div id= "listings"以显示不同类型的移动列表,如iphone 4iphone 5nexus 4nexus 5nexus 6lg g3等。

这是我的Plunkr。

<div ng-repeat = 'breakdown in selected.breakdowns' ng-href = '#{{breakdown}}'>
  {{breakdown}}
</div>

在我的路线上提供商:

.when('/', {
    controller  : 'home-ctrl',
})
.when('/nexus_4, {
    controller : 'nexus_4-ctrl',
    templateUrl : 'listings.html',
})

等等。但这似乎很乏味。有没有一种方法可以让应用程序读取URL(例如mywebsite.com/nexus_5),然后搜索名为nexus_5-ctrl的控制器文件,而不是单独进行操作?

谢谢!

根据我的说法,他们没有任何方法将动态控制器绑定到任何路由。您必须为每个可能的状态创建路由。是的,您可以动态加载控制器文件,也可以使用Lazy加载按需加载。我在我的项目中使用了同样的方法,它对我来说很好。

以下是我的代码片段,我是如何做到这一点的。

 resolve : {
        loadSummerNote:function($ocLazyLoad){
             return $ocLazyLoad.load({
                   name:"summernote",   
                   files: ['/bower_components/summernote/dist/summernote.css','/bower_components/angular-summernote/dist/angular-summernote.min.js','/bower_components/summernote/dist/summernote.min.js']
                })
        },
      loadUploadFile:function($ocLazyLoad,loadSummerNote){
           return $ocLazyLoad.load({
                  name: 'ngFileUpload',
                  files: ['/bower_components/ng-file-upload/ng-file-upload-shim.min.js','/bower_components/ng-file-upload/ng-file-upload.min.js']
              })
      }, 
      currentDomain : function (Domain, $stateParams,loadUploadFile,User){
        return Domain.getDomain();
      }
     },
     controller : "domain"

在解析块中加载所有必需的文件,因此在加载控制器之前必须加载所有依赖项。

  1. 另一个解决方案是使用角度UI-ROUTER。ui-router在单个状态下支持多个视图。因此,不需要为每个可能的情况创建状态。只需为主题创建视图

最新更新