【问题标题】:Angular2 @Injectable not workingAngular2 @Injectable 不起作用
【发布时间】:2017-05-12 17:11:45
【问题描述】:

我有一个 @Injectable 类,在 Service.ts create 中有一个 get 函数。此函数应返回一个数组并获取任何数组。但它返回null。如果我直接在@Component 中写这个,那么它确实得到了数组。我究竟做错了什么?

service.ts

@Injectable()
export class Arr_selected {
  private arr = [];
  get(arr_selected: any[]){
      for(let key in arr_selected) {
          if (arr_selected.hasOwnProperty(key)) {
              this.arr.push([key]);
              return this.arr;
          }
      }
      console.log(this.arr);

  }

} 

组件.ts

import {Arr_selected} from './service.ts';
export class Component implements DoCheck, OnChanges, OnInit {
....
constructor( public arr_selected: Arr_selected)
.....

ngOnInit{

     let chk = this.ChkBoxValue;

     let arr = [];

/// **this not working Array is null**/////
     arr=(this.arr_selected.get(this.ChkBoxValue));

/// **this is working Array is not null**////
     for (let key in this.ChkBoxValue) {
            if (this.ChkBoxValue.hasOwnProperty(key)) {
              arr.push(this.ChkBoxValue[key]);
         }
       }
        console.log(arr); 
}}

【问题讨论】:

  • 您是在导入服务并将其注入到组件中吗?
  • 谢谢,是的,我正在导入 -> import {Arr_selected} from'./servece.ts;
  • 也许是个笨蛋?

标签: arrays angular typescript injectable


【解决方案1】:

我认为下面应该可以工作

@Injectable()
export class Arr_selected {
      get(arr_selected: any[]){
          arr = [];
          for(let key in arr_selected) {
              if (arr_selected.hasOwnProperty(key)) {
                  arr.push([key]);
                  return this.arr;
              }
          }
          console.log(this.arr);

      }

我认为“this”运算符给你造成了问题。您还在组件中定义了 arr 。这可能与使用哪个 arr 发生冲突。

【讨论】:

  • 谢谢,但它不工作,没有'this'我得到一个错误。
  • 您必须将 arr[] 移动到函数内部,如我的代码所示。如果您将其保留为类变量,则必须保留它。
【解决方案2】:
Above code you have written your file name as service.ts

并从 ./servece.ts 导入

   import {Arr_selected} from'./servece.ts;

可能是这里的打字错误, 您是否也在组件提供商中添加您的服务?。

【讨论】:

  • 谢谢,我写的没错,是输入错误))--> " import {Arr_selected} from './service.ts';" 我正在与提供者一起添加:[Arr_selected]跨度>
猜你喜欢
  • 2017-01-08
  • 1970-01-01
  • 2017-04-12
  • 2020-04-27
  • 1970-01-01
  • 1970-01-01
  • 2017-05-20
  • 2017-07-08
  • 2017-04-20
相关资源
最近更新 更多