2014-01-10 27 views
1

我試圖以編程方式更新從我的控制器中選擇的項目,它不工作。當我點擊提交按鈕時,它所做的一切就是清除選擇。我期望的是第二種選擇(珀斯)被選中。AngularJs選擇不更新時,型號更新

看看這個運動員的更多信息。 http://jsfiddle.net/ky5F4/

感謝

<div ng-controller="MyController" ng-app> 
    <div>Number of datasets= {{datasets.length}}</div> 
    <div> 
     <select class="dataset" size="1" ng-model="selectedDataset"> 
      <option ng:repeat="dataset in datasets" value="{{dataset.name}}"> 
       <h3>{{dataset.name}}</h3> 
      </option> 
    </div> 
    <input type="button" value="submit" ng-click="Select()"></input> 
</div> 

function MyController($scope) { 
    $scope.datasets = [{ 
     id: 'id-1', 
     name: 'Brisbane' 
    }, { 
     id: 'id-2', 
     name: 'Perth' 
    }, { 
     id: 'id-3', 
     name: 'Melbourne' 
    }]; 

    $scope.selectedDataset = 'id-1'; 

    $scope.Select = function() { 
     alert('testing'); 
     $scope.selectedDataset = 'id-2'; 
    } 
} 
+0

我看你有沒有'NG:repeat',而不是'NG-repeat' ......不,這將有助於該問題 – tjoenz

+0

是的,我意識到,抄襲別人的小提琴。 – fbhdev

回答

11

使用ng-options,而不是ng-repeat

<select class="dataset" size="1" ng-model="selectedDataset" 
    ng-options="dataset.id as dataset.name for dataset in datasets"> 

Working fiddle

你可以看到文檔here

+0

有趣的是,修復是如此微妙...謝謝!當時限結束時,我會標記爲正確。 – fbhdev

+0

我有一個類似的問題,當我通過另一個模型綁定的輸入來更改模型時,我的選擇框變得空白:'' - 我認爲這是由於索引模型,但它似乎工作正常[簡單版本](http://jsfiddle.net/drzaus/ky5F4/11/)和[ complex v1](http://jsfiddle.net/drzaus/ky5F4/12/)和[complex v2](http://jsfiddle.net/drzaus/ky5F4/13/)。只是分享:) – drzaus