Импорт на странице.ts
import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { AngularFireDatabase} from 'angularfire2/database';
import { Observable } from "rxjs/Observable";
import { ShoppingItem } from '../../model/shoppingitem';
импортирует поставщика прямо из вашего провайдера
import { FirebaseProvider } from '../../providers/firebase/firebase';
export class Page {
shoppingItems:Observable<ShoppingItem[]>;
constructor(public navCtrl: NavController,
public firebaseProvider: FirebaseProvider) {
this.shoppingItems=this.firebaseProvider
.getShoppingItem()
.snapshotChanges()
.map(
changes=>{
return changes.map(c=>({
key:c.payload.key, ...c.payload.val(),
}));
}
);
}
}
}
firebaseProvider
обратите внимание на 'shopping-list'
это таблица в базе данных firebase
private itemListRef = this.afDatabase.list<ShoppingItem>('shopping-list');
constructor(private afDatabase: AngularFireDatabase) {}
.getShoppingItem(){
return this.itemListRef;
}
}
Ваша модель shoppingitem
export interface ShoppingItem{
key?:string;
}
У вас есть 2 варианта:
/app/*
или *.do
, а затем пусть все ваши запросы на страницы соответствуют этому шаблону URL. См. Также веб-приложения Design Patterns /static
или /resources
, и создать фильтр, который проверяет, не совпадает ли URL-адрес запроса, а затем перенаправляется на сервлет. Вот пример, который предполагает, что ваш сервлет-контроллер является @WebServlet("/app/*")
, а фильтр - @WebFilter("/*")
, и все ваши статические ресурсы находятся в папке /resources
. HttpServletRequest req = (HttpServletRequest) request;
String path = req.getRequestURI().substring(req.getContextPath().length());
if (path.startsWith("/resources/")) {
chain.doFilter(request, response); // Goes to default servlet.
} else {
request.getRequestDispatcher("/app" + path).forward(request, response); // Goes to your controller.
}
См. также Как получить доступ к статическим ресурсам при сопоставлении глобального сервлет-контроллера контроллера на /*.Я знаю, что это старый вопрос, и я думаю, что ответ @BalusC, вероятно, отлично работает. Но я не могу изменить URL-адрес приложения JSF, над которым я работаю, поэтому просто просто проверяю путь и возвращаю, если он относится к статическим ресурсам:
String path = request.getRequestURI().substring(request.getContextPath().length());
if (path.contains("/resources/")) {
return;
}
Это отлично работает для меня.