angular2 怎么利用@directive 实现angular1中的ng-controller+ng-app

发布于 2022-09-04 04:07:53 字数 656 浏览 10 评论 0

最近在学习angular2 看国内的官网镜像上的中文教程 摸索前进>_< (看不懂英文T_T)在我看来angular2相对于angular1最大的变化是取消了ng-controller和$scope

之前 对于angularjs的使用集中在数据绑定的便捷和控制器操作数据 典型的curd类型网站只需要暂时数据 表单输入 ajax 就够了现在没了controller就没办法想以前那样html和js分开 要组件化就得把html代码和js代码结合到一起 这样就从写网页+写js 变成了写前端 略坑 而且angular2貌似不组件化还法单独使用

现在看完了开发指南 看到*ngFor=“。。。 ” 可以把“”里的数据弄出来 显示在网页上 那能不能使用@directive 来实现angular1中 ng-app+ng-controller这两个指令的功能 并合并在一个@directive来实现
比如

<html>
<head>
</head>
<body>
    <div *ngCon="app">
        {{test}}
    </div>
</body>
</html>

class app{
    test="hello world"
}

有大佬能弄出来么 求教

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一梦等七年七年为一梦 2022-09-11 04:07:53

Angular 2 中定义了 @Directive 和 @Component 装饰器,组件是继承于指令,并扩展了与 UI 视图相关的属性,如 template、styles、animations、encapsulation 等,因此如果与UI视图相关,就必须使用@Component 装饰器哈。

图片描述

参考示例:

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  template: `
    <h4>Welcome to Angular World</h4>
    <ul>
      <li *ngFor="let item of items;">
        {{ item }}
      </li>
    </ul>
  `,
})
export class AppComponent {
  items: Array<string> = ['item1', 'item2', 'item3', 'item4', 'item5'];
}

参考:
Angular 2 中定义的指令和组件接口:

export interface Directive {
   selector?: string;  // 用于定义组件在HTML代码中匹配的标签
   inputs?: string[];  // 指令的输入属性
   outputs?: string[];  // 指令的输出属性
   host?: {[key: string]: string};  // 绑定宿主的属性、事件等
   providers?: Provider[];  // 设置指令及其子指令可以用的服务
   exportAs?: string;  // 导出指令,使得可以在模板中调用
   queries?: {[key: string]: any};  // 设置指令的查询条件
}

export interface Component extends Directive {
   changeDetection?: ChangeDetectionStrategy;  // 指定组件使用的变化检测策略
   viewProviders?: Provider[];     // 设置组件及其子组件(不含ContentChildren)可以用的服务
   moduleId?: string;  // 包含该组件模块的 id,它被用于解析 模版和样式的相对路径
   templateUrl?: string;  // 为组件指定一个外部模板的URL地址
   template?: string;  // 为组件指定一个内联的模板
   styleUrls?: string[];  // 为组件指定一系列用于该组件的样式表文件
   styles?: string[];  // 为组件指定内联样式
   animations?: any[];  // 设置组件相关动画
   encapsulation?: ViewEncapsulation;  // 设置组件视图包装选项
   interpolation?: [string, string];  // 设置默认的插值运算符,默认是"{{"和"}}"
   entryComponents?: Array<Type<any>|any[]>;  // 设置需要被提前编译的组件
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文