2015-10-19 34 views
2

我试图做类似如下:如何将当前范围传递给角度控制器函数?

<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点击= “GetBookDetails({{book.id}})” 这是给无效的关键错误。 你能帮我一下吗?

+2

'NG点击= “GetBookDetails(book.id)”'你不需要插值'{{书.ID}}' –

回答

2

尝试ng-click="GetBookDetails(book.id)"

0
ng-click="GetBookDetails(book.id)" 

您不能在角度表达式中使用插值。

您还应遵守命名约定,并将您的功能重命名为getBookDetails()Title属性为title。如果你不得不想知道,每次使用函数或属性,如果它以小写字母开头,你都会失去很多时间并引入错误。

最后,已弃用$ http promises上的success()和error()回调。然后,您应该(用),作为任何其他承诺:

$http.get(url).then(function (response) { 
    $scope.books = response.data.items; 
}) 
相关问题