【问题标题】:Angular Click Event Issue Error to discover?Angular点击事件问题错误发现?
【发布时间】:2020-03-21 09:01:30
【问题描述】:

我正在尝试将点击事件绑定到搜索按钮和提交功能,但出现错误:

{hotels: Array(6)} ResultsComponent.html:11 错误类型错误: _co.Submit 不是函数 在 Object.eval

@Component({
  selector: 'app-results',
  templateUrl: './results.component.html',
  styleUrls: ['./results.component.css']
})
export class ResultsComponent implements OnInit {
  upCase(selectedDate): void {
    this.result = selectedDate;
  }
  upCase2(selectedDate2): void {
    this.result2 = selectedDate2;
  }
  hotels;
  hotel;
  available;
  av; 
  matchedHotels=[];
  result='';
  result2='';
  constructor(private HotelsService: HotelsService) { }

  ngOnInit() {
    this.HotelsService.getHotels().subscribe((data)=>{
      console.log(data);
      this.hotels=data['hotels'] 
    
     
    });
    
  function Submit(){this.hotels.map((hotel)=>{
    this.available= (hotel.availability)
    this.available.map((av)=>{
      //console.log(av.from);
      if (av.from>=this.result && av.to<=this.result2){
        console.log('true');
        this.matchedHotels.push(hotel);
        console.log(this.matchedHotels)
        //console.log(this.date);
      }
      })
    })
  }

  

}
      
<div class="container justify-content-center mt-2 mb-2  border border-dark rounded mb-0 r">
    <div class="row card card text-white bg-dark ">
        <div class="serch-hotel mx-auto">
          Search Hotel
        </div>
    </div>
    <div class="row ">
        <div class="col-lg-6 col-md-6 col-xs-12 mb-2">
            <div >
                <label>From: </label>
                <app-date-picker></app-date-picker>  
            </div>
        </div>
        <div class="col-lg-6 col-md-6 col-xs-12 mb-2">
            <div>
                <label>To: </label>
                <app-to-date-picker></app-to-date-picker>  
            </div>
        </div>

    </div>  
</div>

[作为句柄事件] (ResultsComponent.html:15)

at handleEvent (core.js:43993)
at callWithDebugContext (core.js:45632)
at Object.debugHandleEvent [as handleEvent] (core.js:45247)
at dispatchEvent (core.js:29804)

块引用 在 core.js:42925 在 HTMLButtonElement。 (平台-browser.js:2668) 在 ZoneDelegate.invokeTask (zone-evergreen.js:391) 在 Object.onInvokeTask (core.js:39680) 在 ZoneDelegate.invokeTask (zone-evergreen.js:390) View_ResultsComponent_0 @ ResultsComponent.html:11 proxyClass @ compiler.js:19671 logError @ core.js:45546 handleError @ core.js:6066 dispatchEvent@core.js:29808(匿名)@core.js:42925(匿名) @platform-b​​rowser.js:2668 调用任务@zone-evergreen.js:391 onInvokeTask@core.js:39680 invokeTask@zone-evergreen.js:390 runTask@zone-evergreen.js:168 调用任务@zone-evergreen.js:465 invokeTask @ zone-evergreen.js:1603 globalZoneAwareCallback @ zone-evergreen.js:1629 ResultsComponent.html:11 错误上下文 DebugContext_ {view: {…}, nodeIndex: 10, nodeDef: {…}, elDef: {…}, elView: {…}} View_ResultsComponent_0 @ ResultsComponent.html:11 proxyClass@compiler.js:19671 logError@core.js:45546 handleError@ core.js:6071 dispatchEvent@core.js:29808(匿名)@core.js:42925 (匿名)@platform-b​​rowser.js:2668 invokeTask@ zone-evergreen.js:391 onInvokeTask @ core.js:39680 invokeTask @ zone-evergreen.js:390 runTask @ zone-evergreen.js:168 invokeTask @ zone-evergreen.js:465 调用任务@ zone-evergreen.js:1603 globalZoneAwareCallback @ zone-evergreen.js:1629

【问题讨论】:

  • 你有没有试过把函数名改成不同的名字

标签: angular events onclick


【解决方案1】:

检查您的日期选择器组件并查看您正在使用的函数(提交)是否在 .ts 文件中定义或导入,同时检查函数的名称。

【讨论】:

  • 导入组件类,以便使用方法“提交”到您要使用它的组件。是的,您已经将子组件用于父组件,但这并不意味着它可以访问父组件类的方法。因此,如果你真的需要在父类(ResultsComponent)中使用Submit方法,你应该在父组件中使用submit方法,而不是在其子组件(DatePickerComponent)中。所以:
  • 您能否在 github 中查看我的项目
  • 请检查项目链接,我希望搜索按钮从日期选择器中获取日历值并在提交功能中使用它们,其中日历在更改时触发事件发射器以将其值发送到结果组件跨度>
猜你喜欢
  • 2020-08-05
  • 2014-01-16
  • 1970-01-01
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 2019-01-15
  • 2014-12-13
  • 1970-01-01
相关资源
最近更新 更多