在init jquery函数中使用angular2组件属性

时间:2017-01-18 14:02:13

标签: angular typescript parameter-passing jquery-ui-autocomplete

我正在使用angular2开发Web应用程序。我也在使用jquery auto complete。我向远程服务器发出请求并获取完成数据,但服务器地址在自动完成功能中是硬编码的。我试图使用组件属性,但我无法将值作为参数传递给jquery init函数。

ngOninit() {
   this.initJquery();
 }
 private initJQuery() {
    setTimeout(() => {

        $(() => { 
            $("#city-area").autocomplete({
                source: function (request, response) {
                    $.ajax({ 
                        url: "***how to use component value here?***",
                      ...
            }).data("ui-autocomplete")._renderItem = function (ul, item) {

            };
        });
    }, 0); 
}

如何在jquery函数中使用组件值?

1 个答案:

答案 0 :(得分:0)

这是一些时髦的代码。无论如何,你绝不应该在TypeScript类中使用function关键字。这会弄乱this上下文。始终使用箭头函数表示法:

ngAfterViewInit() {
  this.initJquery();
}

private initJQuery() {    
  $("#city-area").autocomplete({
     source: (request, response) => {
        $.ajax({ 
           url: this.url
        }).data("ui-autocomplete")._renderItem = (ul, item) => {}; 
  });
}