小编bri*_*mcq的帖子

将angularjs服务注入Angular

我正在尝试将$log服务用于角度2,根据我的阅读,您需要以下步骤:

  1. 创建一个包含要注入的服务的模块.
  2. 调用UpgradeAdapter的upgradeNg1Provider方法.

所以,我做了以下几点

  var initInjector = angular.injector(['ng']);
  var $log = initInjector.get('$log');
  angular.module('Services1', [])
    .service('$log', [$log]);
  upgradeAdapter.upgradeNg1Provider('$log');
Run Code Online (Sandbox Code Playgroud)

然后我创建一个角度2组件如下

    @Component({   selector: "ion-app",   template:"<p>Test</p>" })
    @Injectable()
    export class HelloIonicPage {
      message: string;
      constructor( @Inject('$log') $log) {
        this.message = "Hi";
      }
    }
Run Code Online (Sandbox Code Playgroud)

但是当我运行应用程序时,它给出了以下错误:

原始例外:没有提供$ log的提供商!

另外,我试图bootstrap使用upgradeAdapter:

  upgradeAdapter.bootstrap(document.documentElement, ['Services1'])
Run Code Online (Sandbox Code Playgroud)

但那也行不通.请注意,我正在使用Ionic 2框架,上面的代码是在里面写的

    this.platform.ready().then(() => { 
            //The code is going here
});
Run Code Online (Sandbox Code Playgroud)

javascript angularjs ionic2 ng-upgrade angular

11
推荐指数
1
解决办法
5211
查看次数

检查用户是否仍在angularfire2中进行身份验证

我有一个使用angularfire2的工作身份验证,我只是想知道是否有另一种方法来检查用户最近登录后是否验证用户是否在服务器上?我这样做是这样的

isAuthenticated():boolean{
 this.af.auth.subscribe(data => {
  if(data ){
  // User is authenticated
    return true;
  }
});
}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏

编辑1:

我决定仍然使用原始代码来检查用户是否最近登录.当你在应用程序启动时没有检查用户时,@ cartant建议的是足够的,因为它可能会返回null,如firebase官方所述文档.我在这里使用它的方式是我有菜单项只应该向经过身份验证的用户显示,并且使用firebase.auth().currentUser将始终在页面的初始加载时返回null.

firebase firebase-authentication angularfire2 angular

7
推荐指数
1
解决办法
5567
查看次数

Angular 2和Typescript - 从单个文件导入多个接口

我已经尝试过搜索高低的答案,但希望有人能够迅速回答这个问题.

我有一个Angular 2应用程序,我正在使用Typescript接口来帮助构建各种数据位.问题是我有一个带有多个接口的文件,当我尝试将其导入组件时,可以毫无问题地引用第一个接口,但第二个接口会导致错误.

例如 ...

myapp.model.ts
  export interface IObjectA { id: number; name: string; }
  export interface IObjectB { id: number; related: IObjectA[]; }

myapp.component.ts
  import { IObjectB } from './myapp.model';
Run Code Online (Sandbox Code Playgroud)

这导致Angular CLI编译器失败并显示错误...

... myapp.model.ts is not a module ...
Run Code Online (Sandbox Code Playgroud)

我似乎无法解决如何解决这个问题.我确定我错过了一些非常明显的东西,但你知道他们对第二双眼睛的看法.

angular-cli typescript2.0 angular

5
推荐指数
1
解决办法
3925
查看次数

ng-bootstrap 是否导入所有组件

我是ng-boostrap 的新手,并遵循了 他们的入门指南。这是代码的重要部分。

import {NgbModule} from '@ng-bootstrap/ng-bootstrap';
 ...

@NgModule({
  
  imports:      [ 
   NgbModule.forRoot(),
    ...
   ],
Run Code Online (Sandbox Code Playgroud)

即使我没有使用它,ng-bootstrap 是否会导入所有组件,如 ngb-carousel、ngb-progressbar 等?

还有另一个引导库ngx-bootstrap可以像这样导入每个组件

import { ModalModule } from 'ngx-bootstrap/modal';
@NgModule({
  imports: [ModalModule.forRoot(),
   ...]
})
export class AppModule(){}
Run Code Online (Sandbox Code Playgroud)

这也是您导入类似角度材料的组件模块的方式

任何人都可以对此有所了解吗?

ng-bootstrap ngx-bootstrap angular

3
推荐指数
1
解决办法
1808
查看次数

在 Angular CLI 中使用 ng build --prod 时使用 cdn 而不是本地服务

我在本地为我的开发提供 Bootstrap 框架。目前,我这样做的方式是像这样在 angular-cli.json 中添加我的引导程序

 "styles": [
        "../node_modules/bootstrap/dist/css/bootstrap.min.css",
        "styles.css"
      ],
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我用

ng build --prod

在制作我的生产版本时。

当我为生产构建 CDN 时,是否有一个快速而好的技巧来使用它?虽然我可以通过在我的 index.html 中手动添加一个引导 CDN 并在 angular-cli.json 中删除一个来实现这一点。我只是想知道你们是怎么做到的。

angular-cli angular

2
推荐指数
1
解决办法
2144
查看次数