我使用ng-click
和ng-view
路由我的div id= "listings"
以显示不同类型的移动列表,如iphone 4
、iphone 5
、nexus 4
、nexus 5
、nexus 6
、lg 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"
在解析块中加载所有必需的文件,因此在加载控制器之前必须加载所有依赖项。
- 另一个解决方案是使用角度UI-ROUTER。ui-router在单个状态下支持多个视图。因此,不需要为每个可能的情况创建状态。只需为主题创建视图