Tôi cũng là người mới làm quen với góc cạnh nhưng bạn sẽ không xử lý điều này bằng cách cung cấp các thuộc tính thông qua mô hình chế độ xem javascript của bạn?
Ví dụ: có trường kiểu thay đổi dựa trên các trường ngày (nghĩa là kiểu trả về 1 khi chênh lệch là 10 ngày) và hy vọng thông qua các angularjs ràng buộc các bản cập nhật sẽ lan truyền tới màn hình.
Tôi nghĩ rằng thuật ngữ thích hợp cho đây là một tài sản tính hoặc sở hữu tính
EDIT
Không chắc nếu đây là những gì bạn đang tìm kiếm nhưng thấy fiddle ví dụ của tính toán ngày tháng khác biệt và thay đổi tất cả các kiểu dựa trên các thuộc tính của mô hình khung nhìn (phạm vi)
scope.diff
và scope.col
là 2 thuộc tính để b ind để
http://jsfiddle.net/chrismoutray/wfjv6/
HTML
<script src="http://code.angularjs.org/0.10.4/angular-0.10.4.min.js" ng:autobind></script>
<div ng:controller="ComputedPropertiesCtrl">
first date <input ng:model="firstdate"> second date <input ng:model="seconddate"> difference {{diff}}
<div>when the difference is greater than 10 color changes to green</div>
<div>eg set the second date to 15/01/2013</div>
<div style="background-color:{{col}};"> State </div>
</div>
JS
function ComputedPropertiesCtrl() {
var scope = this;
scope.firstdate = '01/01/2013';
scope.seconddate = '10/01/2013';
scope.data_before = [];
scope.differenceInDays = function() {
var dt1 = scope.firstdate.split('/'),
dt2 = scope.seconddate.split('/'),
one = new Date(dt1[2], dt1[1]-1, dt1[0]),
two = new Date(dt2[2], dt2[1]-1, dt2[0]);
var millisecondsPerDay = 1000 * 60 * 60 * 24;
var millisBetween = two.getTime() - one.getTime();
var days = millisBetween/millisecondsPerDay;
return Math.floor(days);
};
scope.color = function() {
return (scope.differenceInDays() > 10) ? 'green' : 'red';
};
scope.$watch('[firstdate, seconddate]', function(currScope,newVal,oldVal) {
scope.data_before = oldVal;
scope.diff = scope.differenceInDays();
});
scope.$watch('[firstdate, seconddate]', function(currScope,newVal,oldVal) {
scope.data_before = oldVal;
scope.col = scope.color();
});
}
CSS
h2 { position: fixed; right: 10px; top: 10px; color: red; background:white;z-index:1000; }
input { width: 100px; }
div { margin: 10px; padding: 10px; }
Nguồn
2013-03-08 16:35:59
gì mã của bạn trông như thế nào? –
Bất kỳ suy nghĩ nào về 2 câu trả lời được thêm vào? –