2016-07-26 110 views
-2
.filter('asRelapsedTime', function(ConfigService) { 
    var DECIMAL_STYLE = ','; 

    return function(value, decimalPlaces) { 
    let decimalizedNumber; 
    if (decimalPlaces) { 
     decimalizedNumber = value.toFixed(decimalPlaces | 0); 
    } else { 
     decimalizedNumber = value.toString(); 
    } 

    decimalizedNumber = decimalizedNumber.replace('.'. DECIMAL_STYLE); 

    return decimalizedNumber; 
    }; 
}); 

从上面的代码中,应该可以在内部函数中使用DECIMAL_STYLE。但事实并非如此。我在这里错过了什么?javascript闭包不保留来自外部范围的变量值

+2

您是否收到错误? ' ''。 '呃 - 哦,是的。 – Tushar

+0

'decimalizedNumber.replace('。'。DECIMAL_STYLE);':这里有一个错字。此代码无法执行。 –

+0

令人难以置信..需要在我的编辑器@DenysSéguret中增加字体大小..将您的评论作为答案,以便我可以将其标记 – runtimeZero

回答

1

decimalizedNumber.replace('.'. DECIMAL_STYLE);:这里有一个错字。

此代码无法执行。

使用逗号将DECIMAL_STYLE作为第二个参数传递给replace()

decimalizedNumber.replace('.', DECIMAL_STYLE); 
          ^

如果字符串中有多个.,使用正则表达式与g标志全部更换OCCURENCES

decimalizedNumber.replace(/\./g, DECIMAL_STYLE);