Я также начинаю с угловатыми новичками, но не справитесь с этим, сделав свойства доступными через вашу модель просмотра javascript?
Например, у меня есть поле , которое изменяется в зависимости от полей даты (например, стиль возвращает стиль 1, если разница составляет 10 дней) и, надеюсь, через привязку к угловому связыванию обновления будут распространяться на экран.
Я думаю, что правильный термин для этого является вычисляется свойство или рассчитывается свойство
EDIT
Не уверен, если это то, что вы ищете, но увидеть скрипку, например, из расчет даты и изменения стиля, основанного на свойствах модели представления (область)
scope.diff
и scope.col
являются 2 свойствами для b инд к
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; }
Что делает ваш код выглядит? –
Любые мысли по 2 ответам добавлены? –