2017-05-29 3 views
0

、初期化中に、私はその埋め込み後に配列変数がng-repeatに表示されないのはなぜですか?私のアプリケーションで(角度のJs)

vm.allStates = []; 

述べてきたし、私がNGクリックし、国に基づいて状態を更新を使用して関数をトリガします。

vm.allStates = result; 
console.log(vm.allStates); 

私はそうすることによって所望の出力を得る。私はそれが何も出力しない

<option ng-repeat="option in vm.allStates" value="{{ option }}">@{{ option }}</option> 

を書き、(私はLaravel 5.4を使用していたように)私の出力はHTMLブレードにおけるしかし

["selangor"]; 

のようなものです。初期設定であれば はまた、私は

vm.allStates = ["selangor"]; 

それは、しかし、これは動的表示しませんとなり、と述べました。

これはng-modelと関係がありますか? 値を更新しないので、出力をconsole.logにできます。

IないユーザーNG-オプション、私は、この場合には無効になり、デフォルトで選択されるオプション

EDIT 1ありがとうプレースホルダとして1つの選択した値を、(必要に応じて:。

storeService.storeByCountry(vm.countryId).then(function (response){ 
       vm.totalStores = response.length; 

       if(response[0].country.has_zone){ 
        vm.showZones = true; 
        vm.allZones = [...new Set(response.map(response => response.zone))]; 
        vm.totalZones = vm.allZones.length; 
        vm.showFilterZones = true; 
       } 
       if(response[0].country.has_province){ 
        vm.showProvinces = true; 
        vm.allProvinces = [...new Set(response.map(response => response.province))]; 
        vm.totalProvinces = vm.allProvinces.length; 
        vm.showFilterProvinces = true; 
       } 
       if(response[0].country.has_state){ 
        vm.showStates = true; 
        vm.allStates = [...new Set(response.map(response => response.state))]; 
        vm.totalStates = vm.allStates.length; 
        vm.showFilterStates = true; 
       } 

       angular.forEach(response, function(value, key) { 
        addMarker({lat : +value.latitude, lng : +value.longitude}, vm.countryFilter); 
       }); 
       console.log(vm.allStates); 
       panToCountry(vm.countryFilter); 
       return; 
      }, function(error){ 
       APP.func.alerror(error); 
      }); 
+0

データを 'vm.allStates'に書き込む場所に関するコードを投稿してください。 – Pengyy

+0

結果のデータ構造に問題がある可能性があります – madhur

+0

vmは範囲変数ですか?ここにスコープがありませんか? 1つ目は、vmの最初の$ scope.vmを初期化しました= {}; – mastermind

答えて

0

デバッグの日と思考の後、この問題はアレイを更新していない角度が原因ではないことが判明しました。それは実際にはあります。 ここで問題となるのは、私が使った選択スタイルのプラグインです。

選択ボックスの外観にbootstrap-selectを使用しましたが、値が更新されていないことがわかりました。 です。このプラグインを削除すると、私は必要な結果を確認できます。 もちろん、この問題の回避策はありますが、私はそれ以上のことをしないと決めました。

0

あなたのコードの問題は、あなたのhtmlvm.allStateを使用していることかもしれません。あなたはそれを行うべきではありません(vmが実際にエイリアス名である場合を除く)。私はyにvm referesを信じます私たちのコントローラーインスタンス(通常はそうです)。その場合、htmlのコントローラーエイリアスを使用して、コントローラー内の変数を使用する必要があります。

説明:

あなたのコントローラがvm.name = "Superman";

を持っている場合はこれがctrl.nameとしてではなくvm.nameとしてhtmlで利用できるようになります。エイリアスの名前を変更した場合、同じエイリアスを使用する必要があります。

+0

いいえ、私はそうは思わない、私はvm.nameを印刷することができます。ので、名前を付けることに問題はありません。 –

+0

プリントアウトでは、コンソールやスクリーンにプリントすることを意味しますか? –

+0

コンソールではなく、html .. –

関連する問題