正在访问$resource.query()中的第一项-Angularjs
$resource.query()方法有一些问题。我正在尝试访问其中的第一个元素,但它对我不起作用。选择控制器返回集合时不会出现问题 controller.js main.jade 图书目录。jade正在访问$resource.query()中的第一项-Angularjs,angularjs,express,pug,Angularjs,Express,Pug,$resource.query()方法有一些问题。我正在尝试访问其中的第一个元素,但它对我不起作用。选择控制器返回集合时不会出现问题 controller.js main.jade 图书目录。jade div(ng-controller='bsMainCtrl') p Title: {{ singleBook.title }} p Author: {{ singleBook.author }} p ISBN: {{ singleBook.ISBN }} p Created
div(ng-controller='bsMainCtrl')
p Title: {{ singleBook.title }}
p Author: {{ singleBook.author }}
p ISBN: {{ singleBook.ISBN }}
p Created at: {{ singleBook.createdAt | date }}
a(ng-href='/edit/{{ singleBook._id }}') Edit
div(ng-controller="bsSelectionCtrl")
div(ng-repeat='book in books')
button(ng-click='selectBook()') {{ book.title }}
选择。翡翠
div(ng-controller='bsMainCtrl')
p Title: {{ singleBook.title }}
p Author: {{ singleBook.author }}
p ISBN: {{ singleBook.ISBN }}
p Created at: {{ singleBook.createdAt | date }}
a(ng-href='/edit/{{ singleBook._id }}') Edit
div(ng-controller="bsSelectionCtrl")
div(ng-repeat='book in books')
button(ng-click='selectBook()') {{ book.title }}
service.js
route.js
是否与范围相关?我尝试过使用Angular inspector,但只能得出singleBook为null的结论。$resource.query()返回一个承诺,它最初不包含任何数据,因此您无法在尝试访问时通过编号索引访问它
请尝试:
bsBooks.query().$promise.then(function(data){
$scope.singleBook = data[0];
});
使用回调或承诺从服务器等待数据
var data = bsBook.query(function(){
$scope.singleBook = data[0];
})
请参见var data=bsBook.query(function(){var first=data[0];})//等待服务器,然后分配val。这是我在回答中提供的promise版本的另一种回调方法。他可能没有理由分配给名为data的局部变量,因此最好将其表示为
bsBooks.query(function(data){$scope.singleBook=data[0];})代码>其中数据的值是通过参数获得的。
bsBooks.query().$promise.then(function(data){
$scope.singleBook = data[0];
});
var data = bsBook.query(function(){
$scope.singleBook = data[0];
})