サービス内のルータオブジェクトを使用して、別のルートに移動することを許可します。このコードは、私がExternalService内のルータをインスタンス化することはできませんと言って失敗しているAngular2注射可能なサービスでルータを使用する
@Injectable()
export class ExternalService {
constructor (_router: Router) {}
...
}
:
@Component({
selector: "app",
templateUrl: "app/app.html",
directives: [ROUTER_DIRECTIVES]
})
@RouteConfig([
{
path: "/home",
name: "Homepage",
component: HomepageComponent,
useAsDefault: true
},{
path: "/home2",
name: "Homepage2",
component: HomepageComponent2
}
])
export class AppComponent {
constructor (private _externalService: ExternalService) {}
}
とExternalService:
私AppComponentは、このように見ています。私はこれがRouteConfigが利用できないためだと考えています。私はAppComponent
コンストラクタ内に_router: Router
を追加しようとしましたが、それはそこで動作します。 ExternalService
の中でRouterインスタンスを使用するにはどうすればよいですか?
EDITは:
import { bootstrap } from "angular2/platform/browser"
import { ROUTER_PROVIDERS } from "angular2/router"
import { ExternalService} from "./utils/external.service"
import { AppComponent } from "./app.component"
import { HTTP_PROVIDERS } from "angular2/http"
bootstrap(AppComponent, [ROUTER_PROVIDERS, HTTP_PROVIDERS, ExternalService, provide(LocationStrategy, {useClass: HashLocationStrategy})])
があってはなりません。 – Scipion
私はPlunkerを追加しました。 – rinukkusu