2016-06-27 4 views
0

これに類似したコードがあれば、の中でgetUserName()関数を呼び出す方法はどうでしょうか?私はそれを早くやろうとしましたが、それは機能しませんでした。ng-repeatで関数を呼び出す?

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; 
    } 
}); 

あなたはNGリピートからインデックスを渡すと、そのインデックス

<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; 
     } 
    }); 

それに関連するuser.nameを返すことができ

<div ng-controller="TestController"> 
    <div ng-repeat="review in reviews"> 
    <p>{{review.getUserName()}}</p> 
    </div> 
</div> 
+2

Y uはなく、直接機能

を呼び出す名前を取るいけない{{review.user.name}}

+0

イム私は必要なので、関数を呼び出ししようとしています関数内で何らかの文字列操作を行う。そして@IsmailRBOUHは動作しません。私はすでにそれを試しています。 – helloMundo

+0

これを関数として使用する必要がない場合は、関数を使用してはなりません。 –

答えて

0

scope.getUserName()があなたの例のように簡単ではないと仮定して、代わりにこれを行うことができます。

// Pass the `review` object as argument 
    $scope.getUserName = function(review){ 
     return review.user.name; // get the user name from it 
    } 

HTML、パラメータとしてreviewを渡す

<div ng-controller="TestController"> 
    <div ng-repeat="review in reviews"> 
    <p>{{getUserName(review)}}</p> 
    </div> 
</div> 
4

HTMLあなたはこのsenarioのための機能を使用している場合、私はこのような機能を持たない方が好きです。

<div ng-controller="TestController"> 
      <div ng-repeat="review in reviews"> 
      <p>{{review.user.name}}</p> 
      </div> 
     </div> 
1
//You can directly access the username 
    <div ng-controller="TestController"> 
     <div ng-repeat="review in reviews"> 
     <p>{{review.user.name}}</p> 
     </div> 
    </div> 

//or You can pass the review as parameter and return username from that function. 
    //HTML 
    <div ng-controller="TestController"> 
     <div ng-repeat="review in reviews"> 
     <p>{{getUserName(review)}}</p> 
     </div> 
    </div> 
    //JS 
    $scope.getUserName = function(review){ 
     return review.user.name; 
    } 
0

コードをこれに変更する必要があります。

関連する問題