Javascript 在ng repeat中调用函数?
如果我有类似的代码,我将如何在ng repeat中调用getUserName函数。我以前尝试过这样做,但它成功了,但是,它不再起作用了Javascript 在ng repeat中调用函数?,javascript,angularjs,Javascript,Angularjs,如果我有类似的代码,我将如何在ng repeat中调用getUserName函数。我以前尝试过这样做,但它成功了,但是,它不再起作用了 var user_reviews = [{ user: { name: "John Doe" }, review: { item: "Shure SE215" } }] var app = angular.module("ExApp", []); app.controller(
var user_reviews = [{
user: {
name: "John Doe"
},
review: {
item: "Shure SE215"
}
}]
var app = angular.module("ExApp", []);
app.controller("TestController", function($scope) {
$scope.reviews = user_reviews;
$scope.getUserName = function() {
return $scope.user.name;
}
});
HTML
您可以通过ng repeat传递索引,并返回与该索引相关的user.name
<div ng-controller="TestController">
<div ng-repeat="review in reviews">
<p>{{getUserName($index)}}</p>
</div>
</div>
var app = angular.module("ExApp", []);
app.controller("TestController", function($scope){
$scope.reviews = user_reviews;
$scope.getUserName = function(index){
return $scope.reviews[index].user.name;
}
});
但是如果你只是在使用这个senario函数,我更喜欢不用像这样的函数
<div ng-controller="TestController">
<div ng-repeat="review in reviews">
<p>{{review.user.name}}</p>
</div>
</div>
您应该将代码更改为此
<div ng-controller="TestController"><div ng-repeat="review in reviews">
<p ng-repeat="userName in review.getUserName(review.name)">{{userName.name}}</p></div></div>
var user_reviews = [
{
user:{
name: "John Doe"
},
review:{
item: "Shure SE215"
}
}
]
var app = angular.module("ExApp", []);
app.controller("TestController", function($scope){
$scope.reviews = user_reviews;
$scope.getUserName = function(userName){
return $scope.user.name;
}
});
假设scope.getUserName不像您的示例中那么简单,您可以改为这样做
// Pass the `review` object as argument
$scope.getUserName = function(review){
return review.user.name; // get the user name from it
}
HTML,作为参数通过审阅
<div ng-controller="TestController">
<div ng-repeat="review in reviews">
<p>{{getUserName(review)}}</p>
</div>
</div>
你不直接取名字,而是调用函数{{review.user.name}我试图调用一个函数,因为我需要在函数内部执行一些字符串操作。还有@IsmailRBOUH,那不行,我已经试过了。如果你不需要这个函数,你就不能使用这个函数。你用的是什么版本的Angular?你的review变量没有一个叫做getUserName的函数。我记得ng repeat创建了一个子范围
// Pass the `review` object as argument
$scope.getUserName = function(review){
return review.user.name; // get the user name from it
}
<div ng-controller="TestController">
<div ng-repeat="review in reviews">
<p>{{getUserName(review)}}</p>
</div>
</div>