当onClick激活

时间:2016-07-19 09:37:36

标签: javascript angular

所以我还没有看到这样做的方法,我已经看到它完成并解释了但是在组件之间。

我有这个模板:

  template: `<input value="Date" type="text" class="datepicker" onclick ="myCalendar()" >

这很有效。我设法在变量上选择了日期:

onSet: function(context) {
        foo = new Date(context.select);

所以我现在想把那个变量,那个值传递给调用函数的组件,所以,一旦我完成了这个,我就可以创建一个http请求具有该值,然后将从请求中恢复的内容传递给下一个组件。

编辑:

import {Component} from 'angular2/core';
@Component({
  selector: 'cal',
  template: `<input value="date" type="text" class="datepicker" onclick ="myCalendar()" >
`,
  directives: []
})
export class CalendarioDentro {
  constructor() {

      }    
}

myCalendar功能:

 var foo;
function myCalendar (){

$('.datepicker').pickadate({
    onSet: function(context) {
        foo = new Date(context.select);
        var curr_date = foo.getDate();
        var curr_month = foo.getMonth();

        var curr_year = foo.getFullYear();
        var dateFormated=(curr_date + "-" + curr_month + "-" + curr_year);
        console.log(dateFormated);

    }
});
}

我很抱歉没有足够的意义。我是这个网络世界的新手,我花了一些时间学习正确表达。我的想法是我有一个执行操作的javascript函数:更改日历显示的日期。我想捕获那个日期,所以我可以向我用Java编程的REST服务发出HTTP请求,这样我就可以使用下一个组件返回的信息。

但是我陷入了第一阶段。我确实有日期的价值,但我不知道如何将它传递给调用javascript函数的组件。据我所知,我需要这样做,以便我可以发出GET Http请求。

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点。我认为一个简单的解决方案是将[(ngModel)]添加到您的输入中。然后,您可以在datepicker插件中处理onClose()事件。

这是一个简单的例子:

import {Component, OnInit} from 'angular2/core';
@Component({
    selector: 'cal',
    template: `<input value="date" name="date" type="text" class="datepicker" [(ngModel)]="date">`
})
export class CalendarioDentro implements OnInit {
   date: any;

   ngOnInit() {
       $('.datepicker').pickadate({
            onSet: function(context) {
                foo = new Date(context.select);
                var curr_date = foo.getDate();
                var curr_month = foo.getMonth();

                var curr_year = foo.getFullYear();
                var dateFormated=(curr_date + "-" + curr_month + "-" + curr_year);
                console.log(dateFormated);

            }, 
            onClose: function() {
                // Your code here
                // You can access the date like this:
                console.log(this.date)

            }
        });
   }
}

我已将插件初始化移至OnInit Lifecycle hook。我发现这是初始化jquery代码的好地方,但我同意GünterZöchbauer你应该尽可能避免jquery。使用Angular 2 jquery附带的所有工具,我不需要接缝。