- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我遇到了 ion-select 动态数据过滤的奇怪错误。在我的应用程序中,用户在注册时应该选择三个安全问题,所以这些问题不能相同。我有很多问题:
questions: Array<{isSelected: boolean;question: string}> = [
{isSelected: false, question: 'What is your pet’s name?'},
{isSelected: false, question: 'What is the first name of the person you first kissed?'},
{isSelected: false, question: 'Who was your childhood hero?'},
{isSelected: false, question: 'What was your first grade friend last name?'},
{isSelected: false, question: 'Where did you celebrate your 20th birthday?'},
{isSelected: false, question: 'In what city or town does your nearest sibling live?'},
{isSelected: false, question: 'What time of the day were you born?'}];
我的注册表的这一部分看起来像这样:
<ion-item>
<ion-label floating>Select security question*</ion-label>
<ion-select [(ngModel)]="regModel.SecurityQuestions[i].Question" name="Question"
[selectOptions]="sqSelectOptions"
(ionChange)="chooseQuestion(regModel.SecurityQuestions[i].Question)">
<ion-option *ngFor="let sqOption of questions|filterSQ" value="{{sqOption.question}}"> {{sqOption.question}}
</ion-option>
</ion-select>
</ion-item>
<ion-item>
<ion-label floating>Your answer*</ion-label>
<ion-input type="text" required [(ngModel)]="regModel.SecurityQuestions[i].Answer" name="Answer"></ion-input>
</ion-item>
</div>
我使用 (ionChange)="chooseQuestion(regModel.SecurityQuestions[i].Question)
来跟踪选定的选项:
chooseQuestion(s: string) {
console.log(this.TAG + 'chooseQuestion: event value: ' + s);
this.questions.filter(res => res.question == s).map(res => res.isSelected = true);
//todo rewrite this
this.questions.filter(res => res.isSelected == true &&
res.question != this.regModel.SecurityQuestions[0].Question &&
res.question != this.regModel.SecurityQuestions[1].Question &&
res.question != this.regModel.SecurityQuestions[2].Question)
.map(res => res.isSelected = false);
this.questions_filtered = this.questions.filter(res => res.isSelected == false);
console.log(this.TAG + 'chooseQuestion: questions: ' + JSON.stringify(this.questions));
console.log(this.TAG + 'chooseQuestion: questions_filtered: ' + JSON.stringify(this.questions_filtered));
}
根据日志逻辑工作正常。第一次使用questions_filtered为ion-select提供问题,遇到问题:selected option doesn't display in UI field. 然后我尝试使用管道作为推荐的方式来过滤数据,同样影响。我将不胜感激任何建议。谢谢。
更新
为了澄清案例,我添加了一些记录并稍微重写了代码。此示例中的三个问题中有两个有管道,而最后一个没有。我得到了正确的值,但没有实际显示。
更新
我仍然不知道为什么@misha130 提出的解决方案没有给出任何结果。所以我试着用 Chrome 检查器四处挖掘,发现这部分没有被调用。(我复制了突出显示的部分但我不确定它是否正确)http://plnkr.co/edit/n4wv2UUdLtCmt4enYuVS?p=catalogue
最佳答案
Angular2 不检测数组及其子对象的变化。为了使它在您的 View 中实际生效,您必须调用更改检测
import { ChangeDetectorRef } from '@angular/core';
// Inject to constructor
constructor(public cd:ChangeDetectorRef){}
// as per your example call it on in your ionChange method
chooseQuestion(s: string) {
this.cd.detectChanges();
}
更多信息:http://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html
关于javascript - 使用过滤数据时,ion-select 不会呈现选定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41361415/
ionic 4: 我在标签中有一张图片和一个标签,我希望它们并排出现在中央。 HTML:
使用 ionic v3 开发混合应用程序,我在使用 *ngFor 生成的 ionic 列表中有 ionic 项。问题出在 iOS 设备上,即我无法滚动在 y 方向溢出的 ionic 列表。但是安卓设备
我遇到了 ion-item 背景颜色的问题。 我想要什么: 将背景颜色设置为透明。 我有什么: Remember me! 这会生成一个 背景为白色。 我尝试做的事情: 应用程序组
我正在尝试通过 JS 为我的 ionic 输入元素分配一个值。这是我的代码: HTML: JavaScript: function onSuccess(position) { var
完成一些教程后,我开始使用我自己的 Ionic 应用程序。我开始使用 ionic 的空白模板。我的问题是我的 ion-view(在 cards.js 中,见下文)根本没有出现在 ion-nav-vie
我正在开发一个应用程序,我正在从 JSON 获取数据并且它运行良好,但我的问题是我不知道如何使用指令使用 CSS 样式。下面我展示了代码。第二段代码是css起作用的代码。
我正在使用具有动态值的 ion-radio ,并且需要将第一个值设置为使用 react 形式选择的值。 Type
Atualizado em: {{ultimaAtualizacao | date:'dd/MM/yyyy'}} 我想改变 ion-title 的文字大小,我已经尝试过使用 css,但它没有
我的 ion-content 中有两个输入字段,它们都附加了一个 ng-model。然后在我的 ion-footer 中有一个 ng-click,我在其中调用一个函数并传入两个 ng-models。
我正在基于 ionic 框架构建 phonegap 应用程序。在一个 html 页面中,我需要一个标题和一个内容。但是标题与内容重叠。抱歉,我没有足够的声誉来发布图像。 代码如下。 html 页面与
我尝试了多种方法: 设置内联样式,但看起来 @ionic 在生成 toast 时删除了 style="...." 属性 CSS 变量,但不知道如何设置不公开 api( ionic 图标)的嵌套阴影元素
我目前正在开发 Ionic 应用程序并坚持在 ion-header 和 ion-content 中实现图像。 这是我如何实现的屏幕截图。 从截图中可以看出, ionic 标题和 ion-content
我是ionic的新手,我想上传图片,因此我使用“ng-file-upload”上传我的图片。 但代码仅在我删除“ ion-content ”时才起作用。我的模板是:
我想删除调用 ion-select 时生成的 ion-radio(带有弹出界面) Popover Brown Blonde Black
我想删除调用 ion-select 时生成的 ion-radio(带有弹出界面) Popover Brown Blonde Black
我的 View 如下图所示: 我希望视频容器不可滚动(静态),但视频容器下的列表应该是可滚动的。 请问我如何在 Ionic 框架中做到这一点? 我尝试将绝对位置设置为视频容器并将列表放在容器上方。但如
我确定可能有一种方法可以全面覆盖字体颜色,但我不确定语法 - 我想它在 scss 文件中很容易实现 - 有什么想法吗? 最佳答案 在CSS中使用它 *{ color:#123456; } 将C
我想在更改 ionic 选项时传递员工 ID。我试过这个,但它不起作用,如果有任何错误,请告诉我 这是我的代码: Employee {{ employee.FirstName + " " +
到目前为止,我有一个非常简单的应用程序,但我不知道如何修复内容的重叠(内容顶部的标题)。我创建了一个组件 header顾名思义,它包含标题。 header.html
如标题所述,我正在尝试从 $http 请求分配一个列表,然后在 View 中查看该列表。 我认为问题是 View 在数据加载之前显示,如果我理解正确的话。当变量改变时, View 永远不会更新。 有人
我是一名优秀的程序员,十分优秀!