javascript - Angular 2 with vanilla Javascript - 将数据从 HTML 传递到输入

标签 javascript angular

我正在尝试使用 Angular 2 和 vanilla Javascript 编写一个组件,我想在常规 HTML 页面上使用这个组件,并且我希望能够将数据传递到这个组件中以对其进行自定义。

这是我目前所拥有的:

index.html

<!DOCTYPE html>

<html>

    <head>
        <meta charset="UTF-8">    
    </head>

    <body>

        <!-- I'm using the component here -->
        <process-code id="processId" name="processName"></process-code>

        <script src="node_modules/core-js/client/shim.min.js"></script>
        <script src="node_modules/zone.js/dist/zone.js"></script>
        <script src="node_modules/reflect-metadata/Reflect.js"></script>
        <script src="node_modules/rxjs/bundles/Rx.umd.js"></script>
        <script src="node_modules/@angular/core/core.umd.js"></script>
        <script src="node_modules/@angular/common/common.umd.js"></script>
        <script src="node_modules/@angular/compiler/compiler.umd.js"></script>
        <script src="node_modules/@angular/platform-browser/platform-browser.umd.js"></script>
        <script src="node_modules/@angular/platform-browser-dynamic/platform-browser-dynamic.umd.js"></script>

        <!-- I'm including the component here -->
        <script src="process-code.js"></script>

    </body>

</html>

process-code.js

"use strict";

(function(){

    var ProcessCode = ng.core.Component({

        selector:'process-code',
        templateUrl: 'process-code.html',
        inputs: ['id', 'name']

    }).Class({

        constructor: function(){
            this.processCode = null;
            this.id = null;
            this.name = null;
        }

    })

    document.addEventListener('DOMContentLoaded', function() {
        ng.platformBrowserDynamic.bootstrap(ProcessCode);
    });

})();

process-code.html

<label>Process</label>
<input [id]="id" [name]="name" [(ngModel)]="codigoProcesso">

组件是这样渲染的:

<process-code id="processId" name="processName"><label>Process</label>
    <input id="null" name="null" class="ng-untouched ng-pristine ng-valid">
</process-code>

我期待 inputidname 属性包含在 index.html 页面上指定的值,但显然它们没有被初始化。

我想知道我错过了什么。

最佳答案

改变

<process-code id="processId" name="processName"><label>Process</label>
    <input id="null" name="null" class="ng-untouched ng-pristine ng-valid">
</process-code>

<process-code [id]="processId" [name]="processName">
</process-code>

idname 应该是父组件的局部变量。

关于javascript - Angular 2 with vanilla Javascript - 将数据从 HTML 传递到输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45305635/

相关文章:

javascript - Highcharts 柱形图空间问题

javascript - 在不刷新 HTML 的情况下刷新页面上的 Javascript

javascript - 无法让 Vue 专注于输入

javascript - 选择隐藏的元素并使用 jQuery 操作它们

Angular 7 ngFor 不更新绑定(bind)属性

angular - 在 Angular 中使用多个共享模块

javascript - 冰面配置

javascript - ng-bootstrap 模态页眉和页脚不显示?

javascript - 在数据解析之前,Angular 路线不会导航到路线

angular - 你应该为 Angular Material 2组件写一个包装器吗?