2017-04-20 106 views
2

这可能很愚蠢,但我无法弄清楚。使用引号将变量添加到字符串中

我建立一个字符串在javascript

var template = '<div class="big-long-string-here">'; 

现在工作得很好,但说我想用ng-class与这个div。

var template = '<div class="big-long-string-here" ng-class="{'open' : navCollapsed}"> 

现在,我逃离字符串来放置我的类名,打开字符串。

我该如何正确传递它,以便它在DOM中正确呈现?

+0

您可以在项目中查看是否适合使用[template literals](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals)。 – Marty

+0

“open”是一个变量,它的值应该被替换为字符串吗? – Barmar

+0

不,打开应该完全读取'开放' – user7366018

回答

2

使用字符串连接。

var template = '<div class="big-long-string-here" ng-class="{' + open + ' : navCollapsed}"> 
0

您可以使用模板文字

var template = `<div class="big-long-string-here" ng-class='{"open" : "navCollapsed"}'>`; 

如果navCollapsed是一个变量标识符

var template = `<div class="big-long-string-here" ng-class='{"open" : ${navCollapsed}}'>`; 
+0

我觉得你的第二个解决方案是最接近的。不过,我需要能够通过稍后单击按钮来切换navCollapsed在true和false之间。该解决方案设置了不确定的值。 – user7366018

+0

@ user7366018不确定你的意思?您可以随时更改'navCollapse'的属性和值 – guest271314

+0

它发送给dom:'ng-class =“{”open“:false}”' – user7366018

0

$templateCache.put('udt-toolbar.html', '<div ng-class="{{datatable.config.name ? \'your-class\' : \' \'}}" name="udt-toolbar" class="button-toolbar-main clearfix"></div>');

这是如何解决的。

相关问题