我正在通过解析 json 文件来创建动态表单。所以我需要根据条件绑定隐藏/ngIf。我正在从打字稿文件中传递条件,并且在 html 文件中使用同样的东西。以下是我的代码更改
product.component.ts
export class ProductComponent implements OnInit {
condition : any;
productForm : FormGroup;
constructor(productFormBuilder : FormBuilder) {
this.productForm = productFormBuilder.group({
'name' : ["", [Validators.required, Validators.minLength(5), Validators.maxLength(10)]],
'test' :["",[]],
'middleName':["",[]],
'lastName':["",[]]
});
this.condition="!(this.productForm.get('test').value==='testing')";
}
}
product.component.html
<form [formGroup]="productForm" (submit)="onSubmit()">
<div>
<label>Name</label>
<input type="text" formControlName="name" name="name" >
<div *ngIf="productForm.controls['name'].invalid && (productForm.controls['name'].dirty || productForm.controls['name'].touched)">
<div style="color:red"
*ngIf="productForm.controls['name'].errors.required">Name is required</div>
<div style="color:red"
*ngIf="productForm.controls['name'].errors.minlength">Name is minimum of 5 characters</div>
</div>
</div>
<div>
<label>Label</label>
<input type='radio' formControlName='test' value='testing' name='test'> Testing
<input type='radio' formControlName='test' value='overflow' name='test'> Overflow
</div>
<div [hidden]= "!(this.productForm.get('test').value==='overflow')">
<label>Overflow</label>
<input type='text' formControlName='middleName' >
</div>
<div *ngIf="condition">
<div >
<label>Testing</label>
<input type='text' formControlName='lastName' >
</div>
</div>
<div [hidden]="condition">
<div >
<label>Testing</label>
<input type='text' formControlName='lastName' >
</div>
</div>
<button type="submit">Submit</button>
</form>
在我的模板文件中,我有一个名为“test”的单选按钮,我需要显示基于单选按钮选择的相应div。当我将条件直接放在模板文件中时,绑定是有效的,而当我从typescript中发送它并在模板文件中使用它时,同样的事情是无效的。ngIf*在页面加载时显示右div,但切换不起作用。
由于表单将通过解析json动态创建,我需要从typescript传递条件。
有人可以帮助我吗,我错过了什么。
首先,条件
应该是布尔类型而不是字符串。this.condition="!(this.productForm.get('test'). value==='测试')";
应该替换为this.condition=!(this.productForm.get('test'). value==='测试');
其次,您在单选中缺少更改检测。最初,它已设置,但当您更改它时,您不会更新条件
。
问题内容: 我已经编写了angularjs指令。在该指令的模板中,我添加了一个ngIf指令,并在其中显示绑定到指令范围的输入。 经过大量的反复试验,我注意到ngIf指令导致更改输入文本时模型无法更新。如果我将其更改为ngShow,则一切正常。 我正在寻找这种差异的解释 我在这里创建了一个jsfiddle 问题答案: 之所以会这样,是因为ngIf创建了一个新的子作用域,因此,如果您想绑定到与其他输入
我试图通过使用src属性的props路径来显示带有img标记的图像。 我试着用更改路径,用使用整个路径,在组件中添加,并且只传递文件名()作为道具。我总是显示默认的断开图像。在浏览器中检查时,路径看起来很好。当我直接显示图像时,我可以看到路径被解析为不同的路径
在Servlet中设置值并使用RequestDispatcher在jsp中检索值 在test1Servlet中: request.setAttribute(“alpha”,alpha); 任何人请帮我解决这个问题。
英文原文:http://emberjs.com/guides/components/passing-properties-to-a-component/ 默认情况下,组件不能访问模板作用域下的属性。 例如,假设有一个用于显示一篇博客的blog-post组件: 1 2 3 4 <script type="text/x-handlebars" id="components/blog-post">
想改进这个问题吗 通过编辑此帖子,更新问题,以便用事实和引用来回答。 考虑以下代码示例: 实现相同功能的另一种方法是: 想知道这两种方式应该用哪一种的具体原因,为什么?
我对Angular的Karma Jasmine测试抱怨说 错误:“无法绑定到'ngIf',因为它不是'p'的已知属性。” 当应用程序本身出现此类错误时,修复方法是确保将添加到应用程序模块()的。我确实有这个意思(所以这个问题不是关于“不能绑定到'ngXXX'的规范问题的重复,因为它不是'YYY'的已知属性”)。 这是我的测试设置代码: 我的超文本标记语言模板显示,而不是或错别字,这是该错误消息的另