【发布时间】:2016-09-07 10:06:41
【问题描述】:
index.html:
<script src="app.js"></script>
<div ng-app="app" ng-controller="app" ng-style="{ color: thecolor }">
foo
</div>
app.js:
angular.module("app", [])
.controller("app", function() {
$scope.thecolor = "red";
});
预期:“foo”呈现红色。观察到:“foo”呈现黑色(默认)。
所以基本上我试图从范围内的变量中设置元素的样式。我已经看到它在 Angular 1.0.2 中工作,但我需要它在 1.4.8 中工作。
编辑:一旦我更新了控制器以包含 $scope 依赖项,我仍然无法让某些事情起作用,例如在父元素中定位。
index.html:
<link rel="stylesheet" href="app.css">
<script src="app.js"></script>
<div ng-app="app" ng-controller="app">
<div ng-style="{ left: x, top: y }">
foo
</div>
</div>
app.js:
angular.module("app", [])
.controller("app", ["$scope", function($scope) {
$scope.x = 100;
$scope.y = 100;
}]);
app.css:
body {
margin: 0px;
}
div {
position: relative;
width: 100vw;
height: 100vh;
}
div div {
position: absolute;
}
预期:“foo”向下和向右渲染 100 像素。观察到:没有位移。
【问题讨论】:
-
简单错误,您忘记在控制器依赖项中包含
$scope。 jsfiddle.net/hvyyLwsk/1 -
请看我上面更新的问题陈述。
-
您的
left和top值需要“px”后缀。 -
射击,我在 html 文件中尝试过,但没有成功,但看起来将
x和y更改为带有“px”附加作品的字符串。有没有办法在视图中指定“px”? -
如果我执行
ng-style="{ left: x + 'px', top: y + 'px' }"之类的操作,它似乎可以工作。如果您将您的回复写成答案,我会接受它
标签: css angularjs angularjs-scope