gpt4 book ai didi

angularjs - REST 获取单个项目 - get 不是函数

转载 作者:行者123 更新时间:2023-12-03 06:51:33 25 4
gpt4 key购买 nike

我正在学习 AngularJS:

https://docs.angularjs.org/tutorial/step_13

但是用我自己的例子。 13步后chrome控制台给我一个错误

Book.get is not a function

在此 Controller 中:

angular.module('bookDetail').component(
'bookDetail',
{
templateUrl : 'book-detail/book-detail.template.html',
controller : [ '$routeParams', 'Book',
function BookDetailController(Book, $routeParams) {
var self = this;

self.book = Book.get({
bookId : $routeParams.bookId
}, function(book) {
self.setTitle(book.title);
});

self.setTitle = function setTitle(title) {
self.mainTitle = title;
}
} ]
});

有效的 Controller :

angular.module('bookList').component('bookList', {
templateUrl : 'book-list/book-list.template.html',
controller : [ 'Book', function BookListController(Book) {
this.books = Book.query();
} ]
});

和服务:

 angular.module('core.book').factory('Book', [ '$resource', function($resource) {
return $resource('books/:bookId.json', {}, {
query : {
method : 'GET',
params : {
bookId : 'books'
},
isArray : true
}
});
} ]);

我不知道这里出了什么问题。

最佳答案

您的依赖注入(inject)已交换。

  controller : [ '$routeParams', 'Book',
function BookDetailController(Book, $routeParams) {

要传递给函数的字符串参数数组按位置顺序匹配,而不是按名称匹配。变量名可以是任意的。因此,在本例中,您将获取 $routeParams 的一个实例并将其分配给 Book 变量,反之亦然。

切换注入(inject)顺序应该可以解决问题:

  controller : [ '$routeParams', 'Book',
function BookDetailController($routeParams, Book) {

关于angularjs - REST 获取单个项目 - get 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41260021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com