上では動作しません。 :動的な変更は、私がVUEファイルで作業してフォームを持っていvuejs入力
var instance = new Vue({
el: "#General",
data: {
[...]
pattern: []
}
と言われています。私はいつも「アクションa」をしています。私は 'アクションa'を行うたびに必要な値で適切なアラートを持っていますが、入力は0のままで動的に変更されません。
上では動作しません。 :動的な変更は、私がVUEファイルで作業してフォームを持っていvuejs入力
var instance = new Vue({
el: "#General",
data: {
[...]
pattern: []
}
と言われています。私はいつも「アクションa」をしています。私は 'アクションa'を行うたびに必要な値で適切なアラートを持っていますが、入力は0のままで動的に変更されません。
コードに問題があります。まず、のはあなたのAJAXリクエストを見てみましょう:あなたのdata
応答の形式は
request.success(function(data){
if(data['pattern']==='yes'){
this.pattern=data[0];
alert(this.pattern['value']);
}
})
は何ですか?あなたがdata['pattern']
で何かをチェックしている、そして、あなたはあなたが次にdata[0]
を呼び出すthis.pattern
何かに関連付けしようとしているので、@thanksdの回答で述べたように、あなたはあなたのAJAXコールバックで間違ったthis
を参照している、あなたが作成する必要がありますself
変数:
var self = this
var request = $.ajax({
url: '{{ path ('home') }}promos/pattern/'+value,
})
request.success(function(data){
if(data['pattern']==='yes'){
self.pattern=data[0];
alert(this.pattern['value']);
}
})
は最後に、あなたが書く:
<input type="number" class="form-control" v-model="amount" v-bind:value="pattern['value']"]>
だから、いくつかのミスがここにあります。まず、ここでは何もしない行末に]
があります。
第2に、あなたはv-bind:value
を使用していますが、これは応答するものではありません。この入力を応答させるには、v-model
を使用し、入力値を変更する場合はamount
の値を設定する必要があります。
希望します。
技術的には、 'v-bind:value'は'pattern'プロパティの変化に対応することができます。入力の値を変更しても 'pattern'プロパティは更新されません。 – thanksd
mmmわかりませんが、私がフィドルでテストしたとき、 'value'は応答しません:https://jsfiddle.net/8dvggzhc/' v-model'を取り除いた場合を除いて – Hammerbot
ええ、なし'v-model'は私の言うことです。 「v-model」は単に「v-bind:value = "something" v-on:input = "something = $ event.target.value" 'の略語であるから、 。 – thanksd
3つのこと:あなたのsuccess
ハンドラ内
this
は、Vueのインスタンスを参照していません。ハンドラのスコープの外に参照を設定し、それを代わりに使用する必要があります。
success
コールバックを最初にjQueryのajax
メソッドにチェーンすることはできません。これは、呼び出しに渡されたパラメータオブジェクトのプロパティとして定義されています。 (たぶん、あなたは間違った上でコードをコピーした?)
は、あなたが入力の値は、次のようになりますv-bind:value="pattern"
あなたのコードに縛ら値を反映したい場合はv-model="amount"
を取り除く必要があります。
let self = this; // set a reference to the Vue instance outside the callback scope
var request = $.ajax({
url: '{{ path ('home') }}promos/pattern/'+value,
success: function(data) { // success handler should go in the parameter object
if (data['pattern']==='yes') {
self.pattern=data[0];
alert(this.pattern['value']);
}
}
})
'v-model =" amount "' amount '値に指定した値をすべて書き換えます。あなたの 'v-model'の使い方は間違っています。 1)あなたの「金額」はどこにありますか? 2) 'v-model' OR':value'のどちらかを使用してください。 – wostex
@wostex私はvモデルを削除しても動作しません –
私は 'pattern'がオブジェクトだと思います。プロパティが 'data'で定義されていない場合、' this.set(obj、prop、value) 'を使用して反応させる必要があります:https://vuejs.org/v2/api/#vm-set助けてください - ダミーフェッチなどの実行可能なフィドルを提供してください。 – wostex