2016-09-25 27 views
-1

vueが返すオブジェクトを表示するにはどうすればよいですか? 州はOkですが、都市v-forは機能しません。Laravel 5.2 Vue.jsが計算されない

これは私のブレードです:

<select v-model="ProvinceModel" name="province" id="province" class="border-radius-0 form-control padding-y-0"> 
    <option v-for="province in provinces" value="@{{ province.id }}"> @{{ province.name }} </option> 
</select> 

<select name="city" id="city" class="border-radius-0 form-control padding-y-0"> 
    <option v-for="city in cities" value="@{{ city.id }}"> @{{ city.name }} </option> 
</select> 

これは私のスクリプト

new Vue({ 
     el: '#vue', 
     methods: { 
      fetchProvinces: function() { 
       this.$http.get('{{url('api/provinces')}}').then(function (provinces) { 
        this.$set('provinces', provinces.data) 
       }); 
      } 

     }, 
     computed: { 
      cities() { 
       this.$http.get("{{url('api/cities')}}/" + this.ProvinceModel).then(function (cities) { 
        console.log(cities.data); 
        this.$set('cities', cities.data) 
       }); 

      } 
     }, 
     ready: function() { 
      this.fetchProvinces() 
     }, 
    }); 

とルート

Route::get('cities/{provinces_id}', function ($id = 8) { 
    return \App\province::find($id)->cities()->get(); 
})->where('id', '[0-9]+'); 
+0

あなたの質問から私が知る限り、あなたは 'select2'(https://select2.github.io/)を使用していません。もしそうなら、それを反映するために質問を更新してください。 – ceejayoz

+0

@ceejayoz私はあなたが私を助けることができる場合、私の問題は解決されている必要があります。 –

+0

私はあなたを助けようとしています。私の答えを読んでください。私はあなたに必要な情報を与えました – ceejayoz

答えて

1

計算された関数は、何かを返すべきであり、synnchronously。あなたは何も返さない。

this.citiesもデータとして設定しようとしていますが、this.citiesは既に計算された関数です。 Oneはもう一方を無効にして、矛盾した/混乱する動作を引き起こします。

都市を非同期に取得する方法は、fetchProvincesメソッドの場合と同じ方法です。 ProvinceModelが変更されたときに取得する必要があります。セレクタのイベント、またはProvinceModelの値のVueウォッチャーを使用して行うことができます。

サイドノート:通常、コンポーネントのdataパラメータでデータ項目を定義することをお勧めします。 JSコンソールをチェックすると、Vueはそれについての警告を発している可能性があります。

+0

これらはお読みください。 [リンク1](https://github.com/vuejs/vue/issues/3165) [リンク2](https://github.com/vuejs/vue-validator/issues/273) [リンク3](https ://github.com/vuejs/vue/issues/2064) –

+0

@MortezaNegahiあなたの状況に関連するものはまったくありません。 – ceejayoz

+0

しかし、文書では@changeは存在しません!とvueの作者は、このイベントはおそらくダウンしていると述べた! –

0

Vuejsない柔軟である、あなたは、jqueryの通過値を得るためにそれを渡すことができますコントロール。 Refメソッドによる要素は良好です。

Vuejsはワーカーを待つことができません。ビジー状態になると自然に変化します。

+0

"Vuejsは柔軟ではありません"とは何ですか? – ceejayoz

+0

最初に負の評価を与える前に、何が書かれているかを発見してください! 要素のchnageイベントのためのVeujsが柔軟でないものを予期していなかったとき!私たちは静的ページでは動作しません。ダイナミックなページ! –

+0

@muhamadzolfaghari私はまだあなたが何を言おうとしているかについて完全には不明です。 Vue.jsは非常に柔軟性があり、2つの選択ボックスが相互に作用することは完全に可能です。 OPがしたいことは、Vue内では完全に実行可能です.jQueryは必要ありません。 – ceejayoz

関連する問題