2013-01-20 54 views
5

這一定已經完成了,我錯過了Angular在那個點上的工作方式。從嵌套的ng-repeat綁定的角度ng模型

總之,我有<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:當用戶更新視圖(選擇「選擇」,他希望),在MyCtrl使用的$scope得到它,我可以完成任何我想做的事情:

路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.

這是可行的一個簡單的方法嗎?是否需要指令?

回答

5

如果使用ng-options指令和select指令,那將會更好。使用select + ngRepeat有各種限制,最好避免。用ngRepeat生成選項有什麼特別的理由嗎?

如果你可以共享更多的代碼(特別是你的數據模型的結構),我可能會提供更多的信息。

+0

就是這樣!我迷失在文檔中,沒有看到它。用兩個詞,我需要的僅僅是「' – lajarre