首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将输入值存储在离子角为5的阵列中

将输入值存储在离子角为5的阵列中
EN

Stack Overflow用户
提问于 2018-05-16 08:43:12
回答 2查看 2.6K关注 0票数 1

我在我的html页面中有这样的内容:

代码语言:javascript
复制
<ion-grid style="margin-bottom: 25px;">
  <ion-row padding>
    <ion-col col-11>
      <label class="bold">Title</label>
      <ion-input type="text" class="bordered" placeholder="Enter Title" [(ngModel)]="data.title"></ion-input>
    </ion-col>
  </ion-row>

  <ion-row padding>
    <ion-col col-11 class="pharagraph margin-bottom">
      <label class="bold">Pharagraph</label>
      <ion-textarea rows="10" class="bordered" placeholder="Enter Content Paragraph" [(ngModel)]="data.paragraph"></ion-textarea>
    </ion-col>
  </ion-row>

  <ion-row padding *ngFor="let input of inputs; let i=index">
    <ion-col col-11 class="pharagraph margin-bottom">
      <ion-textarea rows="10" class="bordered" placeholder="Enter Content Paragraph" [(ngModel)]="data.paragraph[i]"></ion-textarea>
    </ion-col>

    <ion-col col-1>
      <button ion-button clear icon-start icon-right (click)="delParagraph(i)"><ion-icon name="trash" color="danger"></ion-icon></button>
    </ion-col>
  </ion-row>

  <ion-row padding>
    <ion-col col-11>
      <button ion-button block color="danger" id="addPharagraph" (click)="addParagraph()"><ion-icon name="add-circle"></ion-icon> &nbsp; add pharagraph</button>
    </ion-col>
  </ion-row>

</ion-grid>

<div class="tab" style="position: fixed; bottom: 0;">
  <a class="tab-item" (click)="save()">Save Draft</a>
</div>

正如您在这里看到的,默认情况下有一个段落的输入,用户可以选择添加任意数量的另一个段落。

这是我的TypeScript

代码语言:javascript
复制
data:any = {};

constructor(public navCtrl: NavController, public navParams: NavParams, public http: Http) {
    this.data.title = '';
    this.data.paragraph = '';
}

addParagraph(){
    this.inputs.splice(0,0,this.inputs.length+1);
 }

delParagraph(paragraphID){
    this.inputs.splice(this.inputs.indexOf(paragraphID), 1);
}

save(){
    var testData = JSON.stringify(this.data);
    console.log(testData);
}

使用这些代码,我只能在如下的一维中显示数据:

代码语言:javascript
复制
{
    "title":"testing title",
    "paragraph":"testing paragraph 1"
}

但我希望它能以这种形式展示:

代码语言:javascript
复制
{
    "title":"testing title",
    "paragraph":[
        {"paragraph": "testing paragraph 1"},
        {"paragraph": "testing paragraph 2"},
        {"paragraph": "testing paragraph 3"}
    ]
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-16 09:10:27

我建议如下:

类:

代码语言:javascript
复制
data = {
    "title": "testing title",
    "paragraphs": [
      { "paragraph": "testing paragraph 1" },
      { "paragraph": "testing paragraph 2" },
      { "paragraph": "testing paragraph 3" }
    ]
  }

...

addParagraph(){
    this.data.paragraphs.push( { "paragraph": "" });
 }

delParagraph(paragraphID){
    this.data.paragraphs.splice(paragraphID,1);
}

HTML

代码语言:javascript
复制
<ion-row padding *ngFor="let paragraph of data.paragraphs; let i=index">
    <ion-col col-11 class="pharagraph margin-bottom">
        <ion-textarea rows="10" class="bordered" placeholder="Enter Content Paragraph" [(ngModel)]="paragraph.paragraph"></ion-textarea>
    </ion-col>
    <ion-col col-1>
        <button ion-button clear icon-start icon-right (click)="delParagraph(i)"><ion-icon name="trash" color="danger"></ion-icon></button>
    </ion-col>
</ion-row>

<ion-row padding>
    <ion-col col-11>
        <button ion-button block color="danger" id="addPharagraph" (click)="addParagraph()"><ion-icon name="add-circle"></ion-icon> &nbsp; add pharagraph</button>
    </ion-col>
</ion-row>

演示

票数 1
EN

Stack Overflow用户

发布于 2018-05-16 09:18:41

你好,我想你想要定义一个段落数组而不是字符串。

代码语言:javascript
复制
this.data.title = '';
this.data.paragraph = [{}] instead of '';

在this.data.paragraph中推送你的段落;)

代码语言:javascript
复制
this.data.paragraph.push({paragraph: 'My text content'});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50366172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档