Nano Hash - криптовалюты, майнинг, программирование

AngularJS Notify $watchCollection измененной модели, которую отслеживает $watch

У меня есть $watch, прослушивающий ввод, вызывающий службу для получения новых данных. Эти возвращенные данные также необходимы коллекции $watchCollection.

Как я могу уведомить $watchCollection о том, что произошло $watch (и, следовательно, область обновления)

Мой HTML

<div ng-controller="MainCtrl">
    <p>A: <input type="text" ng-model="input"></p>
    <p>B: <input type="text" ng-model="output"></p>
</div>

My JS

angular.module('testapp', [])
.controller('MainCtrl', ['$scope', function($scope) {
$scope.$watch('input', function(newVal, oldVal){
    //go get some data from a service...
    var reallyNewVal = Date.now();

    $scope.input = reallyNewVal;
});
$scope.$watchCollection('[output]', function(output){
    //watch this, plus some other stuff too, omitted for simplicity
    $scope.output = $scope.input - 1391754634457;
});
}]);

Пример JSfiddle: http://jsfiddle.net/gC7Zr/

Я ищу, когда изменяется $scope.input (из-за $watch), $watchCollection также обновляется. Я не хочу помещать $scope.input в $watchCollection, так как он обрабатывает запрос XHR.

Любые идеи?

ИЗМЕНИТЬ:

Вот еще один пример того, что я пытаюсь сделать: http://jsfiddle.net/n46rj/
Когда вы меняете B, C обновляется. Однако, если вы измените A, C не обновится. Как я могу принудительно обновить $watchCollection ($digest?) при вызове $watch?


  • почему вы смотрите вывод с помощью $watchCollection? 07.02.2014
  • точно, строка $scope.output = $scope.input - 132365413 должна быть во входных данных, чтобы выполнить то, что вы хотите сделать 07.02.2014

Ответы:


1

поскольку вывод зависит только от ввода, вы можете изменить его в первом $watch

angular.module('testapp', [])
    .controller('MainCtrl', ['$scope', function($scope) {
    $scope.$watch('input', function(newVal, oldVal){
        //go get some data from a service...
        var reallyNewVal = Date.now();

        $scope.input = reallyNewVal;
        $scope.output = $scope.input - 1391754634457;
    });

    $scope.$watchCollection('[output]', function(output){
        //watch some other stuff

    });
}]);
07.02.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..