【问题标题】:Ionic 2/ Angular 2 => Use ionic 2 html tags inside angular 2 componentIonic 2/ Angular 2 => 在 Angular 2 组件中使用 ionic 2 html 标签
【发布时间】:2016-06-26 13:24:59
【问题描述】:

我想将 Ionic2 页面拆分为更小的组件。此外,我还创建了插入 Ionic2 页面的 Angular2 组件。请参阅代码。 如果我现在在 Angular2 组件中使用 Ionic2 HTML 标签,我会得到 ​​p>

''" 没有值访问器

我的<ion-textarea> 标签出错。

离子页面:

@Page({
  selector: 'game',
  directives: [QuestionComponent, AnswerComponent],
  templateUrl: 'build/pages/quiz/quiz.page.html',
  styles: [`

   `], 
)}
...

离子页面 HTML:

<ion-navbar *navbar>
<ion-title>Game: {{game.id}} -> Round {{round}}</ion-title>

<!-- Question Card -->
<question></question>

<!-- Answer Card -->
<answer></answer>

Angular2 组件:

import {Component}      from 'angular2/core'
import {Answer}             from "../../../models/answer";
import {AnswerService}      from "../../../services/answer.service";

@Component({
    selector: 'answer',
    providers: [AnswerService],
    templateUrl: 'build/pages/quiz/answer/answer.page.html',
    styles: [`

     `],
})
...

Angular 组件 HTML:

<ion-card>
<ion-card-content>
    <ion-item>
        <ion-label floating>Answer</ion-label>
        <ion-textarea [(ngModel)]="answerText">></ion-textarea>
        <button outline item-right (click)="submitAnswer(answerText)">
            Send
            <ion-icon name="send"></ion-icon>
        </button>
    </ion-item>
</ion-card-content>
</ion-card>

是否可以在 Angular2 组件中使用 Ionic2 标签组件? 或者将 Ionic 2 页面分成小组件的最佳方法是什么?

*编辑

解决方案

我找到了解决我的问题的解决方案。 链接到解决方案 => Using ion-input inside custom component

要解决它,您必须在 Angular2 Komponetne 中插入 Ionic 2 指令。

修复 Angular 组件:

import {Component}          from 'angular2/core'
import {IONIC_DIRECTIVES}   from 'ionic-angular';

import {Answer}             from "../../../models/answer";
import {AnswerService}      from "../../../services/answer.service";

@Component({
    selector: 'answer',
    directives: [IONIC_DIRECTIVES],
    providers: [AnswerService],
    templateUrl: 'build/pages/quiz/answer/answer.page.html',
    styles: [`

     `],
})

【问题讨论】:

标签: tags angular components ionic2


【解决方案1】:

我不知道 Ionic,但这适用于 Polymer 元素,并且可能也适用于此处 - 添加 ngDefaultControl:

<ion-textarea [(ngModel)]="answerText" ngDefaultControl></ion-textarea>

否则您可能需要实现自定义 ControlValueAccessor,就像在 https://github.com/angular/angular/issues/6639#issuecomment-174703547 中提到的那样

另见ngModel: No value accessor for ''

【讨论】:

  • 是的,实现ControlValueAccessor 是这里的方法:)
  • 谢谢!添加 ngDefaultControl 解决了该错误。但是 Ionic2 标签不能正常工作。
【解决方案2】:

您确定属性answerText 存在于 AnswerComponent 类中吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    • 2018-08-05
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多