2016-10-19 13 views
1

私の角張った工場では、種類に応じていくつかのコードの名前を返す3つの関数があります:eat、feelおよびsource。これは、3つの機能がbassically同じことを行う、と私は1つの関数に変換したいと思い、このようになります。その機能の一つ複数のパラメータを持つAngular JS関数

getFeelingCode: function(feelingCode) { 
     var feelTag=$filter('filter')(constant.feeling_code, {code: feelingCode}, function(a, b) { 
      return a === b; 
     }); 
     if(feelTag[0]) 
     return feelTag[0].label; 
     else 
     return feelingCode; 
    } 

です:

vApp.factory('BgsFactory', function(constant, $filter) { 
    return { 
     getCode: function(Code, StringCode) { 
     var cst; 
     switch(StringCode) { 
      case "eating_code": cst = constant.eating_code; break; 
      case "feeling_code": cst = constant.feeling_code; break; 
      case "source_code": cst = constant.source_code; break; 
     } 
     var Tag=$filter('filter')(cst, {code: Code}, function(a, b) { 
      return a === b; 
     }); 
     if(Tag[0]) 
     return Tag[0].label; 
     else 
     return Code; 
    } 

私の見解では、私は

<td>{{getSourceCode(item.tags.source)}}</td> 
    <td>{{getEatingCode(item.tags.eat_code)}}</td> 
    <td>{{getFeelingCode(item.tags.feeling_code)}}</td> 

私はそれらを私のコントローラに設定する方法はわかりません。私はそのようなことを試しましたが、機能が存在しないとは言いません。

$scope.getEatingCode = BgsFactory.getCode("eating_code"); 
$scope.getFeelingCode = BgsFactory.getCode("feeling_code"); 
$scope.getSourceCode = BgsFactory.getCode("source_code"); 

どのようにパラメータを渡す必要がありますか?

ありがとうございました!

答えて

0

私が取得されなかった場合は、間違っているはい、これは私が探していたものである。この

$scope.getEatingCode = function(code) { return BgsFactory.getCode(code, "eating_code"); }; 
$scope.getFeelingCode = function(code) { return BgsFactory.getCode(code, "feeling_code"); }; 
$scope.getSourceCode = function(code) { return BgsFactory.getCode(code, "source_code"); }; 
+0

ようなものです。それは動作します、ありがとう! – Krasiva

+0

それはあなたの問題を解決する:) –

関連する問題