我正在使用Angular + Firebase + AngularFire来创建我自己的应用。我有一张书桌,我可以添加新书,现在我想实施'编辑'动作:
问题在于第三部分,我不知道如何从点击的行中获取所有数据。
以下是<tr>
的HTML文章:
<tr ng-click="bookCtrl.editBook(bookCtrl.book)" ng-repeat="book in bookCtrl.books">
<td>{{ book.name }}</td>
<td>{{ book.author }}</td>
<td>{{ book.price }}</td>
<td>{{ book.pubdate | date }}</td>
<td>{{ book.coverUrl }}</td>
<td>{{ book.pagesCount}}</td>
</tr>
我想我应该使用angular.element(event.currentTarget)
或类似的东西,但这只是猜测。 DOM大师,请发给我:)
答案 0 :(得分:1)
更改此
<tr ng-click="bookCtrl.editBook(bookCtrl.book)" ng-repeat="book in bookCtrl.books">
到
<tr ng-click="bookCtrl.editBook(book)" ng-repeat="book in bookCtrl.books">
答案 1 :(得分:1)
您缺少在函数中确定正确的对象
<tr ng-repeat="book in bookCtrl.books" ng-click="bookCtrl.editBook(book)">
<td>{{ book.name }}</td>
<td>{{ book.author }}</td>
<td>{{ book.price }}</td>
<td>{{ book.pubdate | date }}</td>
<td>{{ book.coverUrl }}</td>
<td>{{ book.pagesCount}}</td>
</tr>
希望您可以从中访问数据。
答案 2 :(得分:0)
使用角度网格库http://ui-grid.info。 这是一篇很好的文章,http://brianhann.com/create-a-modal-row-editor-for-ui-grid-in-minutes。
import os
init = str('00001')
path = os.getcwd()
newpath = path + '/' + init
os.chdir(newpath)
print os.getcwd()
... # read and append data
# the next step would be to go to directory 00002. Then read and append data
# I will do the same thing in each directory
答案 3 :(得分:0)
你可以使用ng-repeat的$ index属性,所以
ng-click="bookCtrl.editBook(bookCtrl.books[$index])" ng-repeat="book in bookCtrl.books track by $index">
答案 4 :(得分:0)
这取决于您使用的网格库。我喜欢使用的一个基于角度的网格库是trNgGrid。我还使用了另一个带有trNgGrid的库ngDialog来实现您想要执行的类似操作:弹出一个对话框来编辑所单击行的详细信息。
trNgGrid有一些特殊的范围变量gridItem
和gridDisplayItem
。从文档引用:
可以通过
进入当前绑定的行项目
gridItem
范围变量,指向实际数据项,以及
gridDisplayItem
,指向格式化的项目,应该只是 用于演示目的。
详细信息可以阅读here。