大家好,我正在尝试学习angularjs。
我已经选择了:
<label class="md-title" for="yachtId">Choose:</label>
<select name="yachtId" id="yachtId" ng-options="selectedYacht.title for
selectedYacht in yachtIds.availableOptions track by selectedYacht.id"
ng-model="yachtIds.selectedOption" >
</select>
我以json格式获取数据,如下所示:
$scope.yachtIds = {
availableOptions":[
{"id":"2","title":"Name 1","maxCapacity":"5"},
{"id":"7","title":"Name 2","maxCapacity":"8"}
]}
通过这一行,我得到用户选择的内容:
selectedYacht = {{yachtIds.selectedOption}}
输出是这样的:selectedYacht = {“ id”:“ 7”,“ title”:“名称2”,“ maxCapacity”:“ 8”}
问题是,我试图使用md-select进行相同的选择,但是我不知道如何从用户的选择中打印所有内容。使用下面的代码,我仅得到名称。
<md-input-container flex="100">
<label class="md-title" for="yachtId">Desired yacht:</label>
<md-select ng-model="yachtIds.selectedOption" name="yachtId" id="yachtId">
<md-option ng-value="t.title" data-ng-repeat="t in yachtIds.availableOptions">
{{ t.title }}
</md-option>
</md-select>
</md-input-container>
因此,输出结果是:selectedYacht = Name 2,但我希望它像上一个(selectedYacht = {“ id”:“ 7”,“ title”:“ Name 2”,“ maxCapacity”:“ 8” })。
有什么帮助吗?提前致谢。
最佳答案
将您的ng-value
属性更改为t
而不是t.title
,然后添加trackBy
模型选项:
<md-select ng-model="yachtIds.selectedOption" ng-model-options="{trackBy: '$value.id'}" name="yachtId" id="yachtId">
<md-option ng-value="t" data-ng-repeat="t in yachtIds.availableOptions">
{{ t.title }}
</md-option>
</md-select>