我有一个DataService,它应该获取文本框值,并将其传递给我的组件。我想知道当文本框值发生变化时,有没有办法在index.html文件中访问服务对象?这是我到目前为止所尝试的:
的DataService:
export interface Info{
itemNo:string;
}
@Injectable()
export class DataService {
item:Info={itemNo:"Test"};
change(newItem:string){
this.item.itemNo=newItem;
}
constructor(private http: Http) { }
}
我想从服务中访问更改方法:
onSelect: function (request, response) {
console.log(urlApi);
$.ajax({
type: "GET",
url: urlApi,
dataType: 'json',
success: function(response) {
this.item.change(response.items[0].item); //This is what I am trying to do
},
error: function() { alert('Failed!'); },
});
}
有人可以指出我该怎么做吗?
答案 0 :(得分:1)
我认为你的问题在于"这个"范围。如果您被允许使用ES6,则可以使用新的arrow functions来访问this.item。它可能很简单。
...
success: (response) =>{
this.item.change(response.items[0].item); //This is what I am trying to do
}
...

尽管如此,你可能最好使用Angular' HTTP client而不是jQuery