2017-11-11 7 views
1

動作しない私は、単純なselectタグがあります。Angularjs NG-initが

<select ng-model="newItem" ng-options="pr.id + ') ' for pr in products track by pr.id" 
       ng-init="newItem=products[0]"/> 

を私は製品配列の最初の値を事前に選択したいが、それは動作しません。お使いの製品は非同期で読み込まなっているので、ng-ifを追加し、この

(i)を達成するための2つの方法があります

+0

あなたの製品を投稿するjson – Sajeetharan

+0

httpリクエストから製品を非同期で取得しますか? – Korte

+0

'$ http.get( "/製品") .then( 関数(応答){ $ scope.products = response.data; はconsole.log( "成功");} 、 関数(errResponse) { console.log(errResponse.statusText); } ); ' – Fairy

答えて

1

<div ng-if = products.length > 0> 
    <select ng-model="newItem" ng-options="pr.id + ') ' for pr in products track by pr.id" 
ng-init="newItem=products[0]"/> 
</div> 

(ⅱ)あなたの応答内の初期値を割り当て、

$http.get("/products") .then(function (response) { 
    $scope.products = response.data; 
    console.log("Success"); 
    $scope.newItem = $scope.products[0]; 
}, 
function (errResponse) { console.log(errResponse.statusText); }); 
+0

ありがとう、これは動作します。私は、コントローラが実行される前にhtmlがレンダリングされるので、データをロードできないことを理解しました。 – Fairy

+0

これが役に立った場合は、 – Sajeetharan