2013-08-30 35 views

Trả lời

21

Đây thực sự là một sửa chữa đơn giản, có myStyle được nhiều hơn một loại myColor kê khai trên ng-style{{'color':myColor}} biểu hiện của bạn:

<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> 

Không cần cho một ng-change hoạt động trong phiên bản THIS này.

Working Example


Chỉnh sửa, giải thích:

giá trị trong chọn lựa chọn không phải là một chỉ thị góc để myStyle đang được thiết lập để theo nghĩa đen "{color: 'đỏ'}" không Javascript Object{"color":"red"} mà Angular đang tìm kiếm và có thể phân tích cú pháp trong ng-style.

Vì giá trị chữ của "{color: 'red'}" trông giống như đối tượng thì bạn sẽ không nhận thấy sự khác biệt trong batarang. Nhưng nếu bạn chạy một console.log() bạn sẽ thấy sự khác biệt.

Đặt ví dụ của bạn một, sau đó thiết lập ví dụ 2 màu đỏ và thay đổi chức năng clearFilter của bạn bằng cách thêm hai bản ghi và nhìn vào sản lượng và bạn sẽ thấy những gì tôi có nghĩa là:

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

Cảm ơn, tôi bắt đầu với cách tiếp cận này chỉ. Trong ví dụ của tôi, trong batarang myStyle đã được đặt chính xác khi thay đổi lựa chọn nhưng màu vẫn không thay đổi trong ví dụ 2 .. bạn có thể cho tôi biết lý do không? – Jaimin

+0

Xem chỉnh sửa ở trên, đó là những gì tôi tin đang xảy ra – jnthnjns

Các vấn đề liên quan