У меня есть небольшой веб-сайт, который я хочу сделать с помощью Angular. Сайт состоит из 3 типов содержимого: - список, который на самом деле является индексом, '/' - уникальное письменное содержимое, которое является '/ r' - вид сува для элементов из списка I имеют все три типа представлений, но с маршрутизацией я в проблеме. У меня уже есть контроллер, который обрабатывает рабочий объект и создает из него список (массивы пар ключ-значение в массиве, заголовке, субтитре, миниатюрном изображении и т. Д. Для каждого рабочего элемента), но когда я нажимаю на один из элементы списка, должна отображаться его подстраница. Я хочу использовать его с атрибутом $ index по умолчанию, которого для меня достаточно. Но могу ли я использовать контроллер, который я сделал для распечатки, или я должен сделать еще один? за помощь, это мой app.js:Угловая маршрутизация с дополнительными услугами
(function(){
var app = angular.module("portApp", ["ngRoute"]);
app.config(function($routeProvider) {
.when("/", { // default, basically the list-view
controller: "",
templateUrl: "/listView.html"
});
.when("/r", { // about section-s content
controller: "",
templateUrl: "/resumeView.html"
});
.when("/w/:wId", { // sub pages from the list view - $index
controller: "???",
templateUrl: "/itemView.html"
});
.otherwise({ // otherwise redirect to the listView
redirectTo: "/"
});
});
app.controller("PortController", function(){ // controller for the listView
this.products = work;
});
var work = [
{
Title: "Carlsberg/Dreher",
subTitle: "Sörösdoboz tervek ",
Link: "sorok",
Thumbnail: "img/portfolio08.png",
Image: "img/sorokmont.png"
},
{
Title: "Pepsi",
subTitle: "Kristályvíz Promóció",
Link: "pepsi",
Thumbnail: "img/portfolio13.png",
Image: "img/pepsimont.png"
}
]
})();
Как я должен закончить это?
ИЛИ должен ли я как-то использовать атрибут Link элемента из спискаView и передать его элементу itemView с контроллером?
вы можете использовать $ location.path в контроллере. – user3722785
Я бы сохранил «работу» в заводской службе и вызвал это из контроллера вместо того, чтобы сделать его глобальной переменной. Затем перед изменением маршрута вы должны вызвать метод setProduct() из заводской службы. Создайте новый контроллер для страницы продукта, который проверяет заводскую службу для установленного продукта и загружает его в область. Или используйте $ routeParams и загрузите весь массив «work» и используйте $ routeParams.wId для доступа к индексу нужного продукта. – Rorschach120
Спасибо, @ Rorschach120, но я новичок в Angular, так что просто пытаюсь заставить все работать прямо сейчас: $ Так что я немного изменил свой код, теперь у меня есть locationProvider в моем js-файле, и я составил 2 контроллера: 1 для определения моего рабочего массива, который я повторяю (это для представления списка), и 1 нового для обработки деталей. Я изменил work.Link value -removed .html из него, и хочу передать его другому контроллеру и получить только соответствующие данные. Но как мне это сделать с обслуживанием? – CreativeZoller