Поскольку я новичок, использующий AngularJS, подходит для передачи данных между разными контроллерами и (в моем случае) модальный диск меня сходит с ума. По этой причине я googled по сети и нашел интересный blogpost о передаче данных в UI-bootstrap modal без использования $scope
.
У меня был более глубокий взгляд на этот блогпост и поставленный plunk, который работает довольно красиво и начал принимать его в соответствии с моими потребностями.
Что я хочу достичь, так это открыть модальный ввод текстового ввода, в котором пользователь может изменить описание данного продукта. Поскольку это обеспечило бы более чем минимальный рабочий пример, я просто сломал все до относительно небольшого фрагмента кода, доступного в этом plunk.
Передача данных с основного контроллера в модальный, похоже, работает, поскольку описание продукта по умолчанию отображается в текстовом текстовом вводе по желанию. Однако передача данных с модального на главный контроллер, отображающий данные в index.html
, кажется, не работает, поскольку там отображается старое описание после его редактирования в модальном режиме.
Суммируя мои два вопроса:
- Что я делаю неправильно в Одере, чтобы достичь «двухстороннего-связывающих» от основного контроллера в ввод текста модального и всего обратный пути, так как тот же подход работает в упомянутом blogpost (ну, поскольку подход, показанный в blogpost, работает, должно быть что-то не так с моим кодом, но я не могу найти ошибки)
- Как я могу реализовать правильную кнопку
Accept
, чтобы принять изменено описание, только если эта кнопка нажата и отменит любые изменения в любом другом случае (нажатие на кнопкуCancel
или закрытие момента dal, щелкнув рядом с ним)?
Я просто обобщил ваши фрагменты кода в этом [plunk] (http://plnkr.co/edit/l98fIW7ru1gB8KBzI2WU) – albert
Nice. Мне нравится, как @albert добавил функцию 'closeModal', чтобы сделать его« modal.html »более выразительным. – georgeawg
Бонусный вопрос: как вы изменяете функции 'getDescription' и' setDescription' для извлечения и обновления чего-либо в 'MainCtrl'? – georgeawg