Я просмотрел многочисленные сообщения, но не нашел того, что вполне соответствует тому, что я ищу. Я разделился на несколько контроллеров, чтобы четко разделить функциональность на несколько областей. Существует централизованная служба, которая содержит все данные, которые передаются между отдельными контроллерами и отображаются на экране в разных областях. Я столкнулся с проблемой с контроллером, который находится дальше по линии, которая захватывает те же данные, что и другие, но пользовательский интерфейс не обновляется, когда обрабатываются данные в службе. В каждом контроллере я установить переменную возможности для объекта в службу ..
$scope.package = SampleService.getPackage();
я затем использовать нг-повтор в цикле через пакет, который содержит массив, и может содержать вложенный массив данных для отображения. Во время процесса данные обрабатываются и назначаются этим элементам (внутри службы, а не контроллера). Если я поставлю переменную $ scope.package в цикле, я вижу, что переменная обновляется из службы (смотря ее в консоли), но изменения не отражаются на экране. В частности, я устанавливаю несколько значений true/false и в зависимости от их значения на экране будут отображаться несколько значков. Значки никогда не отображаются (не обнаружил, что переменная области не изменилась), пока я не щелкнул что-то на экране (при условии, что это вызывает цикл дайджеста). Затем появятся значки. Однако они меняются несколько раз в зависимости от состояния задачи. Я должен продолжить щелчок, чтобы изменить значки.
Есть ли что-то, что мне не хватает? Изменения в структуре отлично работают в другой области страницы. Это одна из областей, с которой я не могу работать правильно. Единственное отличие состоит в том, что я переключаю true/false вместо того, чтобы манипулировать другими областями объекта. Может ли с помощью угловой.copy установить значения true/false?
Я вроде в недоумении, что делать здесь ..
Предложения?
То же самое, что и выше ... не кажется как хороший ответ, но и не работает. – dferg
@ dferg, если ни одна из двух не работает, это не проблема дайджеста. '$ timeout', безусловно, заставляет дайджест, который должен обновить ваше представление. Без примеров кода трудно понять, что происходит. – Marko
Понял и согласился, поэтому его так смущает. Удивление, если его просто не замечает, что переменная загрязнена из-за того, насколько далеко изменилось изменение. Его несколько объектов вложены в несколько уровней внутри других объектов и массивов. – dferg