Javascript 使用AngularJS导航时,jQuery UI对话框忽略ng模型
我正在使用AngularJS和Bootstrap构建一个应用程序,到目前为止,一切都进展得相当顺利。我有一个jQuery UI对话框小部件实例,我在整个站点中使用它来进行确认、更新表单等操作。更新表单通常包含ng模型属性,因此我可以在对话框出现时预加载输入。这是一个样本 HTML 这就是事情变得奇怪的地方。每当我打开然后关闭其中一个对话框,离开页面,导航回页面,并尝试使用不同的数据集打开对话框面板时,AngularJS到对话框的关系就会中断。更具体地说,面板不再识别对传入的$scope变量所做的任何更改。在上面的示例中,面板将仅显示上次成功加载时保留的selectedUserLogin和selectedUserName的值,而不管新值是什么。一切仍然是可编辑的,就像一个普通的HTML表单一样,但在我手动重置页面之前,角度关系将丢失 我特别了解角度导航,因为它实际上只是改变单个页面上的显示,但我不知道这如何破坏对话框小部件。我还确认,无论额外页面是否调用自己的对话框方法,导航到任何页面并返回都会中断对话框。沿着这些思路,在离开页面之前,使用不同的数据重复打开多个对话框效果良好Javascript 使用AngularJS导航时,jQuery UI对话框忽略ng模型,javascript,jquery,jquery-ui,angularjs,jquery-ui-dialog,Javascript,Jquery,Jquery Ui,Angularjs,Jquery Ui Dialog,我正在使用AngularJS和Bootstrap构建一个应用程序,到目前为止,一切都进展得相当顺利。我有一个jQuery UI对话框小部件实例,我在整个站点中使用它来进行确认、更新表单等操作。更新表单通常包含ng模型属性,因此我可以在对话框出现时预加载输入。这是一个样本 HTML 这就是事情变得奇怪的地方。每当我打开然后关闭其中一个对话框,离开页面,导航回页面,并尝试使用不同的数据集打开对话框面板时,AngularJS到对话框的关系就会中断。更具体地说,面板不再识别对传入的$scope变量所做的
这件事真的难住了我,所以任何帮助或指导都将不胜感激。您是在什么时候
$compile
-ing DOM的?您在那里使用的范围将是绑定到HTML的范围。我怀疑您没有更新该作用域?我在控制器的开头使用$timeout进行调用(我将更新上面的代码)。这不是最有棱角的方式,但直到现在它对我来说还是很好的。使用指令可能更好,但我还没有找到一个可靠的例子来说明如何做到这一点。我也不确定这是否会改变这种特殊情况。重新编译看起来确实有帮助,但不确定如何进行。
<div id='divMyEditor'>
<table>
<tr>
<td>Login:</td>
<td><input type='text' ng-model="selectedUserLogin" /></td>
</tr>
<tr>
<td>Full Name:</td>
<td><input type='text' ng-model="selectedUserName" /></td>
</tr>
</table>
</div>
$timeout(function() {
$("#divMyEditor").dialog({
autoOpen: false,
draggable: false,
modal: true,
closeOnEscape: true,
width: 400,
resizable: false
});
},0);