これはすでに行われているに違いありません。Angular がその点でどのように機能するかについて、私は何かが欠けています。
要するに、<select ng-model><option ng-repeat/></select>
ページの読み込み時にデフォルト値を与える方法がわかりません。
意見:
<div ng-ctrl="MyCtrl">
<form ng-submit="submitChoice()">
<select ng-model='choice'>
<option ng-repeat='choice in choices' value='{{choice.id}}'>{{choice.id}}</option>
</select>
</form>
</div>
方法 1 : ユーザーがビューを更新すると (必要な「選択」を選択)、$scope
MyCtrl で使用されるビューが取得され、それを使用して必要なことを実行できます。
方法 2 : しかし、逆に、(開始時に) コントローラーからの選択肢のデフォルト値をプログラムで設定したい場合、表示される値を変更することはできません。
function MyCtrl ($scope) {
$scope.submitChoice = function() {return;}; // Way1: OK!
$scope.choice = choice4; // Way2: Doesn't change the view!!
}
ng-repeat の各要素には独自のスコープがあるためだと思います (ng-repeat の代わりにビューでオプションをハードコーディングすると、うまく機能します)。
方法1では用途によって選択された内側のスコープがchoice
、よく理解すれば上位のスコープに発光します。しかし、方法2を行う方法がわかりません。
簡単な方法で実行できますか?ディレクティブは必要ですか?