2013-10-10 4 views
1

Я пытаюсь запустить основные математические функции на связанных объектах сферы в моем контроллере. Представление представляет собой серию слайдеров, которые должны будут реагировать на основе ввода пользователем нескольких разных слайдеров. Кажется, я не могу получить значения для обновления на переднем конце.Angularjs math по связанным объектам scope

Это мои «вычисления» для этих значений.

$scope.mainSlide = { 
    assets: ($scope.slide1.assets * $scope.slide2.assets/.1), 
    roa: ($scope.slide1.roa * $scope.slide2.roa/.1) 
}; 

Я немного смущен, почему вычисленные значения не связаны на лицевой стороне.

Любая помощь, или направление были бы очень благодарны!

+0

Что именно вы пытаетесь достичь? – Phill

+0

@ Пробуйте получить mainSlide для обновления в представлении, поскольку значения в файле slide1.assets ... и т. Д. Изменяются. Он должен вычислять значения и выводить на другой слайдер диапазона, вроде как живой график. – flashpunk

ответ

4

Для вычисляемых свойств на $scope вы можете использовать $scope.$watch, чтобы пересчитать, когда значение изменится и установить новое значение (например, смотреть слайд1 и слайд2, установить значение функции mainslide при их изменении). Вы можете также установить вычисленные значения mainSlide, чтобы быть функции, и они будут обновляться автоматически:

В вашем случае:

$scope.mainSlide = { 
    assets: function() { return ($scope.slide1.assets * $scope.slide2.assets/.1);}, 
    roa: function() { return ($scope.slide1.roa * $scope.slide2.roa/.1);} 
}; 

Чтобы использовать их на ваш взгляд:

Assets: {{mainSlide.assets()}} 
Roa: {{mainSlide.roa()}} 

Пример Plunker для функции метод: http://plnkr.co/edit/tFiZ5z?p=preview

Пример Plunker для метода $ watch: http://plnkr.co/edit/5iASgJ?p=preview

+0

Это отлично работало. Однако (что-то, чего я не включил), Как я могу применить это к атрибуту ng-model на моем представлении? – flashpunk

+0

В этом случае я бы просто использовал метод $ watch. Обновленный ответ, чтобы добавить пример Plunker. –

+0

большое спасибо, работал как шарм. Думаю, мне нужно больше узнать о методе $ watch. – flashpunk

Смежные вопросы