$log
サービスをangular 2に使用しようとしています。私が読んだ内容によると、次の手順が必要です。
だから、私は次のことをしました
var initInjector = angular.injector(['ng']);
var $log = initInjector.get('$log');
angular.module('Services1', [])
.service('$log', [$log]);
upgradeAdapter.upgradeNg1Provider('$log');
次に、次のようにangular 2コンポーネントを作成します
@Component({ selector: "ion-app", template:"<p>Test</p>" })
@Injectable()
export class HelloIonicPage {
message: string;
constructor( @Inject('$log') $log) {
this.message = "Hi";
}
}
しかし、アプリケーションを実行すると、次のエラーが発生します。
元の例外:$ logのプロバイダーはありません!
また、bootstrap
を使用してupgradeAdapter
を試みました。
upgradeAdapter.bootstrap(document.documentElement, ['Services1'])
しかし、それもうまくいきませんでした。 Ionic 2フレームワークを使用しており、上記のコードは内部に記述されていることに注意してください
this.platform.ready().then(() => {
//The code is going here
});
サービスをプロバイダーとして登録する必要があります。これが私がangular1 $ stateをangular 2アプリケーションに注入する方法です:
@NgModule({
providers: [
{
provide: '$state',
useFactory: ($injector: any) => $injector.get('$state'),
deps: ['$injector']
}
]
})
そして注射の代わりに:
@Injectable()
export class RestService {
constructor(@Inject('$state') $state: any) {
$state.go('...');
}
}