Я использую 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 load. Я использовал то же самое в своих проектах и прекрасно работал со мной.
Вот фрагмент моего кода, как я это делаю.
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"
Загрузите все необходимые файлы в блок разрешений, чтобы вся загрузка была загружена перед загрузкой контроллера.