2016-10-19 9 views
1

В моей угловой фабрике у меня есть 3 функции, которые возвращают имена некоторых кодов, в зависимости от их типа: есть, чувствовать и источник. Это одна из функцийУгловые функции 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; 
    } 

В 3 функции bassically делают то же самое, и я хотел бы, чтобы преобразовать их в одну функцию, которая будет выглядеть следующим образом:

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

хорошо это решает вашу проблему :) –