【发布时间】:2015-05-22 03:19:54
【问题描述】:
我有这段代码,但是当用户在输入中写入颜色时,新元素的背景颜色应该改变但不起作用,我做错了什么?
<div ng-app="mainApp" ng-controller="MainCtrl">
<input type="text" ng-model="color" placeholder="Enter a color" />
<hello-world/>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script>
var mainApp = angular.module("mainApp", []);
mainApp.directive('helloWorld', function() {
return {
restrict: 'AE',
replace: true,
template: '<p style="background-color:{{color}}">Hello World',
link: function(scope, elem, attrs) {
elem.bind('click', function() {
elem.css('background-color', 'white');
scope.$apply(function() {
scope.color = "white";
});
});
elem.bind('mouseover', function() {
elem.css('cursor', 'pointer');
});
}
};
});
</script>
【问题讨论】:
-
你应该关闭
<p>标签,例如Hello World</p> -
这是creating a custom css style directive上的类似 SO 帖子
-
对我来说很好用(我用“红色”作为点击,这样你就可以看到变化)~plnkr.co/edit/0Get13WBrQMy5PuFO4oP?p=preview