typescript
1import Vue from 'vue'; 2import VueRouter from 'vue-router' 3import VueObserveVisibility from 'vue-observe-visibility' 4import axios from 'axios'; 5import jquery from 'jquery'; 6 7 8 9/// <reference path="../typings/index.d.ts" /> 10 11/// <reference path="../typings/globals/jquery/index.d.ts" /> 12 13Vue.use(VueObserveVisibility) 14 15export class Main_contents { 16 17 private version: string 18 private operator_id: number 19 20 static task_id: string = "task_id"; 21 22 constructor(version: string, operator_id: number) { 23 this.version = version 24 this.operator_id = operator_id 25 } 26 27 getData(): void { 28 let version = this.version 29 let operator_id = this.operator_id 30 31 32 let vue = new Vue({ 33 el: "#all_contents", 34 data: { 35 write_message: "", 36 37 38 39 40 }, 41 mounted: function (): void { 42 43 }, 44 methods: { 45 send_message: function (task_id: number): void { 46 47 let params = new URLSearchParams() 48 49 params.append('operator_id', String(operator_id)) 50 params.append('task_id', String(task_id)) 51 params.append('message', this.write_message) 52 53 ////////// 54 params.append('image_path', "") 55 ////////// 56 57 console.log(params) 58 axios.post(this.url + '', params) 59 .then(response => { 60 axios.get(this.url + "" ) 61 .then((response) => { 62 }) 63 }); 64 }, 65 66
コードやdataもほとんど消してしまって分かりづらいかもしれません、すみません。
send_message: function (task_id: number): void を
send_message: (task_id: number): void =>
に変えるとthis.write_messageがエラーになります。
Property 'write_message' does not exist on type 'Main_contents'.
と言われ、vueインスタンス自身?を表していたthisがクラスのインスタンスと言う意味に変わってしまいます。
vueのmethodsでラムダ式はかけないのでしょうか。
そもそもラムダ式の書き方が間違ってるのでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/01/26 04:37