【发布时间】:2016-10-19 11:30:48
【问题描述】:
在我的 Angular 工厂中,我有 3 个函数返回一些代码的名称,具体取决于它们的类型:吃、感觉和来源。这是功能之一
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 个函数基本上做同样的事情,我想将它们转换为一个函数,如下所示:
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");
我应该如何传递参数?
谢谢!
【问题讨论】: