为什么我不能使用ng-click进入jQuery Dialog

时间:2014-07-30 10:47:31

标签: javascript jquery angularjs angularjs-ng-click

我想创建一个div,可以使用jquery和angularjs动态更改背景。

当我点击背景中的文本时,它会打开一个新窗口( Jquery ui Dialog ),然后我可以选择另一个背景图像。

当我点击图片时,我想改变背景!

我有两个问题:

为什么我不能将ng-click用于对话框动态内容?

我有一个动态数据对话框:

$( "#dialog" ).load( item+".html" ).dialog( "open" );

已加载的数据:

<img  ng-controller="BackgroundCtrl" src="http://etickets.dev10.dev.infomaniak.ch/images/templates/background.jpg" width="20%" height="20%" ng-click="changeBackground.doClick('http://etickets.dev10.dev.infomaniak.ch/images/templates/background.jpg')" />

当我将数据direclty放入对话框div时,我使用ng-click指令。

第二个问题是:

点击后,我会更新

$scope.BackGroundImage

div为什么不改变他的背景图片?

完整的例子在这里:

http://plnkr.co/edit/?p=streamer&s=og6gLDAeSNgi6clQ

1 个答案:

答案 0 :(得分:0)

据我了解,您正在尝试使用jQuery构建动态HTML,并希望Angular能够理解它。

这不起作用。 Angular需要了解正在发生的一切,因此在Angular“外部”构建内容是一个问题。

告诉Angular新的HTML内容是这样的:

$("#dialog").load(item+".html", function () {
  var $this = $(this);
  var html = $this.html();
  var angularCompiled = $compile(html)($scope);
  $this.html(angularCompiled);
}).dialog("open");

这只是理论,也可能有其他方法可以做到这一点,但这会给你一个想法。