这实际上是一个简单的修复,myStyle更多的是myColor一种声明类型并且ng-style有你的{{'color':myColor}}表达:
<select ng-model="myColor">
<option value="">none</option>
<option value="red">Red</option>
<option value="green">Green</option>
</select>
<div ng-style="{'color':myColor}">
<p>Text to change color</p>
</div>
在这个实例中不需要ng-change函数。
Working Example
编辑,解释:
选择选项中的值不是角度指令,因此myStyle被设置为字面上的“{color:'red'}”,而不是Object {"color":"red"}Angular 正在寻找并且可以在ng-style.
由于“{color:'red'}”的字面值看起来像对象,因此您不会注意到batarang 的差异。但是如果你运行 aconsole.log()你会看到不同。
设置您的示例一,然后将示例 2 设置为红色并clearFilter通过添加两个日志来更改您的功能并查看输出,您会明白我的意思:
$scope.clearFilter = function () {
console.log('myStyle1', $scope.myStyle1);
console.log('myStyle', $scope.myStyle);
$scope.query = '';
$scope.orderProp = '';
$scope.myColor = '';
};