我正在尝试使用ng-href
动态地将不同的CSS样式加载到我的页面中,但页面未使用激活的样式进行更新。代码如下:
<html ng-app="myapp" ng-controller="myController as myctrl">
<head>
<link rel="stylesheet" ng-href="../assets/css/{{ myctrl.style }}.css">
</head>
</html>
在我的控制器中,我执行以下操作:
vm.style = "redStyle";
pub.subscribe('style', function(theStyle) {
vm.style = theStyle;
});
发布后,subscribe
中的变量会使用新样式进行更新。但是没有加载相应的css文件,以便在页面上更新样式。我错过了什么想法?
答案 0 :(得分:0)
它与您拥有的内容非常相似,因此您的代码中还有其他内容。除非你提出所有代码,否则很难分辨。
假设样式表确实存在,并且样式变量正在更新,那么我的猜测是罪魁祸首
pub.subscribe()
如果此回调是由角度以外的东西触发的,则角度不会看到更新的变量。您可以将其带回角度空间,如下所示:
pub.subscribe('style', function (theStyle) {
$scope.$apply(function(){
vm.style= theStyle;
});
});
答案 1 :(得分:0)
试试这个:
...
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar
...
class MyApp(QtGui.QMainWindow, Ui_MainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
Ui_MainWindow.__init__(self)
self.setupUi(self)
self.addToolBar(NavigationToolbar(self.canvas, self))
...
答案 2 :(得分:0)
我解决了不同的问题。 在我的html中,我给链接元素一个id:
<link id="theme" rel="stylesheet" ng-href="../assets/css/{{theme}}.css">
在控制器中我说:
var myTheme = document.getElementById("theme");
var path = "../assets/css/{{theme}}.css";
myTheme.href = path.replace("{theme}", theme.class);