2016-10-28 15 views
0

私は現在のプロジェクトから$ scope.params.projectにデータを渡すことを含む以前に提出された 'プロジェクト'を再投稿できる機能を開発しています。既存のプロジェクトをアーカイブし、ユーザーがプロジェクトを再送信できるPostProjectページにリダイレクトし、必要に応じてフォームの詳細を調整します。

考えられるのは、PostProjectフォームに$ scope.paramsのジョブデータが取り込まれ、ユーザーがこれをすべて再入力する必要がないということです。

私はこれを正常に使用して普通の<input>フィールドを設定しました。データが渡されていることがわかりました。ただし、<select>ドロップダウンメニューでこれを行う方法に関するドキュメントを見つけるのが難しいです。私が見つけたものはすべて、<select>メニューをデフォルト値に設定するためにng-modelを使用するように指示しています。

しかし、私は$ scope.paramsに基づいた値にメニューを設定し、その値がフォームの送信時にモデルを設定する必要があります。私は困惑している。

ここにHTMLがあります。 $ state.params.projectが目的のJSオブジェクトであり、$ state.params.project.service_typeがpostOppCtrl.services配列に存在する文字列であると仮定すると、問題を示すために必要なのはこれだけです。

HTMLから:

<select ng-if="$state.params.project" 
     ng-model="postOppCtrl.postOppProjForm.service_type" 
     ng-options="category as category for category in postOppCtrl.services" 
     // this part doesn't work, and I'm not sure what else to try. 
     ng-value="$state.params.project.service_type" 
     </select> 
+0

あなたは' postOppCtrl.postOppProjForm.service_type'、 'postOppCtrl.services'の値を投稿することができ、そして:

vm.postOppProjForm = {}; 

私がいることを置き換えます$ state.params.project.service_type'?もし私がそれを持っていれば、あなたはソリューションのためにJSFiddleを作成することができます。 – robmarston

答えて

0

あなたは値を初期化するために、selectタグにNG-のinitを使用して試みることができる:

ng-init="postOppCtrl.postOppProjForm.service_type = $state.params.project.service_type

+0

コメントありがとうございます!私の同僚は、私がここに投稿した解決策を考え出しました。 – user3230279

0

私は、コントローラからモデルを設定することで、これを解決$ scopeを使用しています。私が持っていた私のPostOpportunityControllerで

: `

vm.postOppProjForm = { service_type: $state.params.project.service_type }; 
関連する問題