Jestem także nowicjuszem angularjs, ale czy nie poradziłbyś sobie z tym poprzez udostępnienie właściwości za pomocą modelu widoku javascript?
Na przykład pole w stylu zmienia się w zależności od pól daty (np. Styl zwraca styl 1, gdy różnica wynosi 10 dni) i miejmy nadzieję, że poprzez powiązanie angularjs aktualizacje zostaną przeniesione na ekran.
myślę prawo termin ten jest obliczany nieruchomość lub obliczony nieruchomość
EDIT
Nie wiem, czy to jest to, czego szukasz, ale patrz na przykład skrzypce obliczanie różnic daty i zmiana stylu wszystkich opartych na off właściwości modelu widoku (zakres)
scope.diff
i scope.col
są 2 właściwościami b ind do
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; }
Co robi Twój kod wyglądać? –
Jakieś przemyślenia na temat 2 odpowiedzi? –