javascript - Angular js ng样式不起作用

标签 javascript angularjs

<span>Select color : </span>

<select ng-model="myStyle">
    <option value="">none</option>
    <option value="{color:red}">Red</option>
    <option value="{color:'green'}">Green</option>
</select>

<div ng-style="myStyle">

http://plnkr.co/edit/IOHjEGbuOzD4CjwRqIK9?p=preview

在这个 plunker 中,示例 1 工作得很好,但在示例 2 中选择颜色不起作用。

提前致谢

最佳答案

这实际上是一个简单的修复,让 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>

THIS 实例中不需要 ng-change 函数。

Working Example


编辑、解释:

选择选项中的值不是 Angular Directive(指令),因此 myStyle 被设置为字面上的“{color:'red'}”而不是 Javascript Object { "color":"red"} Angular 正在寻找并且可以在 ng-style 中解析。

由于“{color:'red'}”的字面值看起来像对象,因此您不会注意到 batarang 中的差异。但是,如果您运行 console.log(),您就会看到不同之处。

设置您的示例 1,然后将示例 2 设置为红色并通过添加两个日志更改您的 clearFilter 函数并查看输出,您就会明白我的意思:

$scope.clearFilter = function () {
    console.log('myStyle1', $scope.myStyle1);
    console.log('myStyle', $scope.myStyle);
    $scope.query = '';
    $scope.orderProp = '';
    $scope.myColor = '';
};

关于javascript - Angular js ng样式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18532635/

相关文章:

javascript - 如何在多个元素上使用相同的 ng-model

javascript - 未能注入(inject) Angular 分量

javascript - Angular JS 模型关系

javascript - 可以使用 Angular ngModel 来绑定(bind) HTML 元素的属性

javascript - jquery 每个循环只循环一次,如果使用 else 代码停止

javascript - JS-遍历对象

javascript - 尽早访问控件 |负载与 domready

javascript - 使用 AJAX 将变量从动态 html 表传递到 php 更新查询

javascript - jQuery步进器不触发更改功能

angularjs - 覆盖 Angular $http 帖子以使用附加数据扩展每个帖子数据