Angular 2内联模板:严格模式下的变量未定义

时间:2017-04-05 02:55:54

标签: javascript angular typescript angular-cli

Angular 2应用程序遇到错误“错误:./SampleComponent类中的错误SampleComponent - 内联模板导致:严格模式下的变量未定义”。 但我只在IE 10>中获得此错误。

<input type="text" class="form-control" name="name" formControlName="name" placeholder="Name" [nameFormatter]="selected">

这里传递给属性指令selected的“nameFormatter”值是在组件中初始化的变量。如果我尝试删除带有一些静态值的selected变量,这似乎工作正常。使用selected变量对其进行分配会导致此问题。

export class NameComponent implements OnInit {
   public selected : string;

    someFunction(){
         this.selected="some value" //The value changes depending on some conditions
    }
}

是否与polyfills有关。我尝试将下面的polyfills添加到index.html但没有运气。

  <script src="https://cdnjs.cloudflare.com/ajax/libs/es6-shim/0.33.3/es6-shim.min.js"></script>
  <script src="https://npmcdn.com/angular2/es6/dev/src/testing/shims_for_IE.js"></script>
  <script src="https://unpkg.com/core-js/client/shim.min.js"></script>

有人可以指导我。

1 个答案:

答案 0 :(得分:0)

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); 内的{p> this未引用somefunction,它位于不同的闭包中。

如果您的目标是从视图(NameComponent)调用该函数,请执行以下操作:

html