使用 md-select,传递 ng-repeat 项的整个 object,而不仅仅是字符串
Using md-select, pass the entire object of an ng-repeat item, not just a string
我制作了一个带有 Angular Material 的表格,它使用下拉列表从 book
object 的数组中进行选择,带有名称和 ID,用于最终交易目的它用于我 collection 中的另一本书。这是我的典型交易 object 的样子:
var tradeItem = {
wanted: {
user: 'barryjohnson',
bookId: 'foo1bar2'
},
offered: {
user: 'dangraham',
bookId: 'bar7baz8'
},
};
我想将整个 object 保存到 select 菜单中的 ng-model
,所以我希望 ng-repeat 引用整个数组 object.这样我就可以向我的数据库发出一个简单的后续请求。
目前它只保存标题,这是我的 md-option
标签中的内容。
这是我的观点:
md-dialog(aria-label='Trade', ng-cloak='')
form
md-toolbar
.md-toolbar-tools
h2 Propose a Trade
span(flex='')
md-dialog-content(style='max-width:800px;max-height:810px; ')
.md-dialog-content
p Which of your books would you like to trade for '{{userClickedBook.title}}'?
p {{selected}}
md-input-container.md-block
label(for="mySelect") Your Books
md-select(name="mySelect", ng-model='selected')
md-option(ng-repeat="book in usersBooks") {{book.title}}
div(layout='row')
md-button(ng-click='cancelDialog()', style='margin-right: 20px;') Cancel
md-button.md-primary(ng-click='save()', ng-disabled='myForm.$invalid', layout='', layout-align='center end') Ok
那么,我怎样才能绑定整个object,让$scope.selected
像上面的objecttradeItem
,而不只是一个字符串(内容md-option
)?
这不适合你吗?
<md-option ng-repeat="book in userBooks" ng-value="book">
{{book.title}}
</md-option>
我制作了一个带有 Angular Material 的表格,它使用下拉列表从 book
object 的数组中进行选择,带有名称和 ID,用于最终交易目的它用于我 collection 中的另一本书。这是我的典型交易 object 的样子:
var tradeItem = {
wanted: {
user: 'barryjohnson',
bookId: 'foo1bar2'
},
offered: {
user: 'dangraham',
bookId: 'bar7baz8'
},
};
我想将整个 object 保存到 select 菜单中的 ng-model
,所以我希望 ng-repeat 引用整个数组 object.这样我就可以向我的数据库发出一个简单的后续请求。
目前它只保存标题,这是我的 md-option
标签中的内容。
这是我的观点:
md-dialog(aria-label='Trade', ng-cloak='')
form
md-toolbar
.md-toolbar-tools
h2 Propose a Trade
span(flex='')
md-dialog-content(style='max-width:800px;max-height:810px; ')
.md-dialog-content
p Which of your books would you like to trade for '{{userClickedBook.title}}'?
p {{selected}}
md-input-container.md-block
label(for="mySelect") Your Books
md-select(name="mySelect", ng-model='selected')
md-option(ng-repeat="book in usersBooks") {{book.title}}
div(layout='row')
md-button(ng-click='cancelDialog()', style='margin-right: 20px;') Cancel
md-button.md-primary(ng-click='save()', ng-disabled='myForm.$invalid', layout='', layout-align='center end') Ok
那么,我怎样才能绑定整个object,让$scope.selected
像上面的objecttradeItem
,而不只是一个字符串(内容md-option
)?
这不适合你吗?
<md-option ng-repeat="book in userBooks" ng-value="book">
{{book.title}}
</md-option>