How to escape/quote elements of Scala collection to pass to AngularJS initialization?
我需要为angularjs自动完成指令初始化String常量的集合。也许还有另一种方法,但是我这样做是将值注入到相关的Ctrl中。为此,我像这样在
1 2 3 4 5 | angular.module("backTestDemoApp").value("ccyPairs", [ @CcyPair.values.map("'%s'".format(_)).mkString(",") ] ); |
我想将其作为HTML输出:
1 2 3 4 5 | angular.module("backTestDemoApp").value("ccyPairs", [ 'CHFEUR', 'CHFGBP', 'CHFJPY', ... ] ); |
但是我在HTML中得到的却是:
1 2 3 4 5 | angular.module("backTestDemoApp").value("ccyPairs", [ "CHFEUR","CHFGBP","CHFJPY","CHFUSD","EURCHF","EURGBP","EURJPY","EURUSD","GBPCHF","GBPEUR","GBPJPY","GBPUSD","JPYCHF","JPYEUR","JPYGBP","JPYUSD","USDCHF","USDEUR","USDGBP","USDJPY" ] ); |
我也尝试过将每个元素package在单引号或双引号HTML代码中,但仍会因Play模板而变得无用:
1 | @CcyPair.values.map("%s".format(_)).mkString(",") |
OK在播放模板文档中找到了解决方案。解决方案是将代码package在
1 2 3 4 5 | angular.module("backTestDemoApp").value("ccyPairs", [ @Html(CcyPair.values.map("'%s'".format(_)).mkString(",")) ] ); |