Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.07.2014, 11:14
Новичок на форуме
Отправить личное сообщение для lasfin Посмотреть профиль Найти все сообщения от lasfin
 
Регистрация: 04.01.2014
Сообщений: 3

Вывод значений высчитанных в ng-repeat, после изменения scope
Есть такой html:
<tr ng-repeat="(key, val) in data.stages"  ng-if="val.one_segment !== '' "  ng-init="count()">
				<td>{{key}}</td>
				<td>{{val.time1}}</td>
				<td>{{val.time2}}</td>
				<td>{{val.one_segment}}</td>
				<td ng-init="getTotal(diff(val.time1, val.time2))">{{diffAbsolute(val.time1, val.time2)}}</td>
				<td>{{setDriver(diff(val.time1, val.time2), data.pilot1, data.pilot2)}}</td>
			</tr>

На основании данных, высчитанных в ng-repeat выводится следующая часть html:
<p class="bg-primary">Total gap: <span>{{timeDif}}</span></p>
		<p>Total races: {{total}}</p>
		<h2 class="name_pilot" ng-bind="data.pilot1"></h2>
		<p style="display: inline-block;" class="win1" ng-bind="winOne"></p>
		<p style="display: inline-block" class="win2" ng-bind="winTwo"></p>



Проблема в том, что после получения других данных через $http.get 2 часть перестает адекватно работать. Скорее всего, проблема в том, что я каких-то супер базовых вещей angular не понимаю, но буду признателен за любые подсказки.
Ответить с цитированием
  #2 (permalink)  
Старый 03.07.2014, 12:40
Аватар для FireVolkhov
Аспирант
Отправить личное сообщение для FireVolkhov Посмотреть профиль Найти все сообщения от FireVolkhov
 
Регистрация: 17.04.2013
Сообщений: 88

А где код контроллера?
Ответить с цитированием
  #3 (permalink)  
Старый 03.07.2014, 13:35
Новичок на форуме
Отправить личное сообщение для lasfin Посмотреть профиль Найти все сообщения от lasfin
 
Регистрация: 04.01.2014
Сообщений: 3

'use strict';

/* Controllers */

var f1App = angular.module('f1App', []);

f1App.controller('DataCtrl', function($scope, $http) {
	$http.get('../data/ferrari.json').success(function(data) {
		$scope.data = data;
	});

	$scope.changeData = function(teamName) {
		switch (teamName){
			case 'redBull':
				$http.get('../data/redbull.json').success(function(data) {
					$scope.data = data;
				});
				break;
			case 'ferrari':
				$http.get('../data/ferrari.json').success(function(data) {
					$scope.data = data;
				});
				break;
			case 'caterham':
				$http.get('../data/caterham.json').success(function(data) {
					$scope.data = data;
				});
				break;

	$scope.diff = function(a, b){//разница между временами в одной квалификации
		return getDiff(a,b);
	};

	$scope.diffAbsolute = function(a, b){//абсолютная разница для вывода в шаблоне
		return Math.abs(getDiff(a,b));
	};

	$scope.total = 0; //всего гонок
	$scope.count = function(){
		console.log('Раздва');
		$scope.total++;
	};

	$scope.winOne = 0;//победы первого
	$scope.winTwo = 0;//победы второго
	$scope.timeDif = 0;//разница во времени

	$scope.getTotal = function(a) {
		$scope.timeDif += parseFloat(a);
		if(a > 0){
			$scope.winOne+=1;
		} else {
			$scope.winTwo+=1;
		}
	};

	$scope.winner = '';//победитель отдельной квалы
	$scope.setDriver = function (time, pilot1, pilot2){
		if (parseFloat(time) < 0) {
			$scope.winner = pilot2;
		}
		else {
			$scope.winner = pilot1;
		}
		return $scope.winner;
	};




});//DataCtrl
Ответить с цитированием
  #4 (permalink)  
Старый 04.07.2014, 07:03
Аватар для FireVolkhov
Аспирант
Отправить личное сообщение для FireVolkhov Посмотреть профиль Найти все сообщения от FireVolkhov
 
Регистрация: 17.04.2013
Сообщений: 88

Что ты подразумеваешь под "2 часть перестает адекватно работать"?
Сделай пример на сайте типа этого будет проще разобраться.
Ответить с цитированием
  #5 (permalink)  
Старый 04.07.2014, 23:10
Аватар для a.malitsky
Аспирант
Отправить личное сообщение для a.malitsky Посмотреть профиль Найти все сообщения от a.malitsky
 
Регистрация: 26.03.2010
Сообщений: 56

Не надо ничего высчитывать в ng-repeat, он используется в темплейте для отображения. Для расчетов используется контроллер.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение кнопки, не срабатывает функция после изменения arahmanov Элементы интерфейса 3 25.01.2014 14:36
Вывод значений таймера в div Tylmaril (X)HTML/CSS 7 21.07.2013 16:47
Нестабильно срабатывает вывод значений с формы NeVirus Элементы интерфейса 8 20.02.2013 09:34
Помогите ограничить вывод знаков после запятой в скрипте djonA Общие вопросы Javascript 2 02.05.2012 01:41
Вызов функции после изменения данных nematod AJAX и COMET 11 21.01.2011 09:23