我正在尝试做类似下面的事情:
<ul>
<li ng-click="GetBookDetails({{book.id}})" ng-repeat="book in books">{{book.Title}}</li>
</ul>
以下是控制器:
angular.module('app')
.controller("Books", ["$scope", "$http", function ($scope, $http) {
$http.get(url).success(function (data) {
$scope.books = data.items;
})
$scope.GetBookDetails = function (bookId) {
$http.get(url + '/' + bookId).success(function (data) {
$scope.bookDetails = data;
})
}
}]);
但ng-click =“GetBookDetails({{book.id}})”这给出了无效的密钥错误。 你能帮帮我吗?
答案 0 :(得分:2)
尝试ng-click="GetBookDetails(book.id)"
答案 1 :(得分:0)
ng-click="GetBookDetails(book.id)"
您不得在角度表达式中使用插值。
您还应该尊重命名约定,并将您的功能重命名为getBookDetails()
,将Title
属性重命名为title
。如果你不得不怀疑,每次使用函数或属性时,如果它以小写字母开头,你将会失去很多时间并引入错误。
最后,不推荐使用$ http promises上的success()和error()回调。您应该使用then(),以及任何其他承诺:
$http.get(url).then(function (response) {
$scope.books = response.data.items;
})