Few things that I see wrong with your code:
You are creating variables inside the template and using them and
ngModel. I am not sure that will work. You need to create models in your component and then use those as ngModels to associate with Angular
If you sole purpose is data and template manipulation then you are using Angular the wrong way. You will be better off with Reactive Forms
Because of this
*ngIf="rule.value=='customDate'"your input will disappear the moment a value gets added to it, provided that you use correct Angular models.
CLICK HERE to find out more related problems solutions.