Javascript 无视图的角度2组件

Javascript 无视图的角度2组件,javascript,html,angularjs,typescript,angular,Javascript,Html,Angularjs,Typescript,Angular,是否可以在不使用模板或@View的情况下使用Angular 2 我正在寻找一种类似的方法,就像您在示例中所做的那样: 角度1 index.html <div ng-controller="appcontroller"> <div ng-class="{active: isActive()}"> ..... </div> </div> <app> <div [ngclass]="{active: isActive()}"&

是否可以在不使用模板或@View的情况下使用Angular 2

我正在寻找一种类似的方法,就像您在示例中所做的那样:

角度1

index.html

<div ng-controller="appcontroller">
<div ng-class="{active: isActive()}">
    .....
</div>
</div>
<app>
<div [ngclass]="{active: isActive()}">
    .....
</div>
</app>
如果可能的话,我猜会是这样的:

角度2

index.html

<div ng-controller="appcontroller">
<div ng-class="{active: isActive()}">
    .....
</div>
</div>
<app>
<div [ngclass]="{active: isActive()}">
    .....
</div>
</app>
但不幸的是,我得到了一个错误:

... must have either 'template', 'templateUrl', or '@View' set.

我真的不喜欢将html放入Javascript中,因此我希望有某种解决方法或方法来做到这一点。

事实上,您应该像这样实现
AppComponent

import {Component} from 'angular2/core';

@Component({
  selector: 'app'
  template: `
    <div [ngClass]="{active: isActive()}">
      .....
    </div>
  `
})
export class AppComponent { 
  isActive(){
    return true;
  }
}
<app></app>
并使用如下组件:

import {Component} from 'angular2/core';

@Component({
  selector: 'app'
  template: `
    <div [ngClass]="{active: isActive()}">
      .....
    </div>
  `
})
export class AppComponent { 
  isActive(){
    return true;
  }
}
<app></app>

希望它能帮助你,
Thierry

因此,没有其他方法将html(代码或.html文件)放入TypeScript文件本身?您可以使用
templateUrl
属性引用包含视图内容的html文件。。。我更新了我的答案。我使用了你上面的建议,使用了templateUrl,终于能够让Angular 2应用程序运行了。再次感谢你,蒂埃里!Angular2的一个缺陷,IMO。它不再可能只有一个HTML页面。它必须分成小块,可以是JS代码(
template
)或单独的文件(
templateUrl
)。