Изменения переменных из вызова функции не отображаются в модальном окне angular-bootstrap

Я пытаюсь использовать angular и bootstrap для создания модального окна, отображающего видео на YouTube. Следование модальному примеру на странице начальной загрузки angular работало нормально, когда я жестко закодировал URL-адрес YouTube. Однако, когда я пытаюсь создать переменную с URL-адресом в ней, когда видео выбрано, я не могу сохранить эту переменную объявленной/измененной в экземпляре модального окна.

Вот плункер, демонстрирующий мою проблему в модальном примере с сайта Angular: http://plnkr.co/edit/n1vfSJUhcJWjNlfVrpxA?p=preview

Кнопка, запускающая модальное окно, при нажатии вызывает две функции: open() и my testFunction().

<button class="btn btn-default" ng-click="testFunction(); open()">Open me!</button>

Этот testFunction просто присваивает новое значение переменной $scope:

$scope.testFunction = function(){
         $scope.testFromFunction = "Hey this is a test that was changed in that function!";
  };

Как я могу получить <p>{{testFromFunction}}</p> в модальном окне, чтобы отразить это назначение переменной в модальном окне? (должен сказать «Эй, это тест, который был изменен в этой функции!», а не «все еще без изменений»)

Эквивалентная функция testFunction в моем реальном приложении принимает $index и использует его для создания правильного URL-адреса YouTube. Мне нужно динамически создавать отдельные ссылки на YouTube и не могу жестко закодировать их в html/js.

Спасибо вам большое за ваше время. Дайте мне знать, если вам нужна дополнительная информация или если что-то неясно.


person user95227    schedule 10.03.2015    source источник


Ответы (1)


У вас есть две области видимости: одна для "ModalDemoCtrl" и одна для самого модального диалога. Вы не определили "testFunction" в первом контроллере, область действия которого видна вашей кнопке. Вы также определили «TestFromFunction» в качестве источника для модального через параметр «разрешить» модального вызова, но вы пытаетесь сослаться на значение из родительского контроллера, а не на значение, переданное через «разрешить». Вот исправленный плункер, который правильно показывает ваше сообщение, надеюсь, это поможет. http://plnkr.co/edit/F3gV7y3MYJLvzsBYZGnS?p=preview

person Pavel Kutakov    schedule 10.03.2015
comment
Кроме того, не могли бы вы предположить, почему фон в моем приложении не становится серым? Спасибо еще раз! - person user95227; 10.03.2015
comment
Какой браузер вы используете? Я проверил свой код plunker с помощью Chrome и даже IE 10, и оба они показывают фон при открытии модального окна. - person Pavel Kutakov; 11.03.2015
comment
На самом деле я использую node-webkit для запуска приложения как исполняемого файла, но я не знаю, вызовет ли это различия. Я могу дважды проверить свой css, чтобы убедиться, что что-то в моей таблице стилей не конфликтует с начальной загрузкой. Спасибо! - person user95227; 11.03.2015