2013-10-30 41 views
1

我正在用angularjs建立一种模板设计工具。一切工作正常,除了这个小问题。Angularjs里面<style>标签

我使用[[和]]作为开始和结束符号;

function($interpolateProvider) { 
    $interpolateProvider.startSymbol('[['); 
    $interpolateProvider.endSymbol(']]'); 
} 

在控制器我有类似

$scope.style.title_color = '#ff0000'; 

,当我生成预览这样

<h1 class="title" style="color:[[style.title_color]];">Preview Title</h1> 

一切工作正常。但是,我需要这样的东西

<style> 
h1.title { color: [[style.title_color]] } 
</style> 
<h1 class="title"> 
    Preview Title 
</h1> 

它不工作..

任何想法,为什么?

回答

2

这可能是一个范围界定问题。与$scope.style.title_color相同的控制器范围内的<style>标签?

编辑: 我不相信Angular在Style标签上的作品。您应该使用ng-style。

所以你$scope变量是这样的:$scope.style.title_color = '#ff0000';和你的DOM元素看起来是这样的:<h1 ng-style="{color: style.title_color}">hello</h1>

+0

号。它不是作用域问题。如果我将样式更改为div,则可以看到正确的普通输出。我会试着在稍后的某个地方给出一个例子 –

+0

检查我的编辑,我不认为试图使一个样式标记动态的首先是要走的路 – thaavik

+0

我没想到我可以应用多个属性与ng-样式。现在,我将使用类似 你好 和控制器 $ scope.style.title = { 背景: '红', 颜色:“蓝' } 问题是我需要将许多属性应用于许多标签,所以DOM看起来很糟糕..这就是为什么我需要“动态CSS”。现在问题解决了。谢谢! –