2013-08-20 2 views
0

У меня следующая ситуация:

  • вид + Ctrl 1: меню, выберите город. $ смотреть атрибут города, обновлять задания в этом городе от API при его изменении и соответственно изменять $ scope.model.myJobs.

  • вид + Ctrl 2: основной вид, итерация над $ scope.model.myJobs с повторением ng.

Ответ от API приходит гладко и, как ожидалось, но, похоже, что угловой имеет отдельный $ scope.model.myJobs на каждый контроллер, даже если контроллер 1 находится в пределах контроллера 2 в синтаксисе HTML.

Есть ли способ решить это?

ответ

2

«Угловой» способ сделать это - использовать сервис, который предоставит вам модель. Службы сохраняются, даже если вы меняете представление и можете делиться несколькими контроллерами. Концепция хорошо объясняется в этом ответе: https://stackoverflow.com/a/12574818/2187206

И для вашей информации вы столкнулись с этой проблемой, поскольку дочерний контроллер имеет доступ только для чтения к родительской области. При попытке изменить родительскую область в дочернем объекте свойство клонируется в локальной области дочернего контроллера, и изменения не распространяются. Быстрый и грязный способ исправить это - создать геттер и сеттер в вашей родительской области и изменить модель с помощью этого установщика в дочернем контроллере. Но вы должны окончательно использовать сервис.

+0

Да, я чувствовал, что здесь происходит какая-то инкапсуляция, спасибо, хотя это не совсем обычное прототипное программирование, которое я использую для –

+0

Что вы подразумеваете под «обеспечивать», как служба может управлять атрибуты области управления ?, разве это не наоборот ?. Я действительно смущен –

+0

Есть ли способ изменить URL-адрес, чтобы отразить текущий выбранный параметр? –

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