我使用ng-repeat来迭代对象列表,对于列表中的每个项目,都有一些子对象,这些子对象在Bootstrap模式弹出窗口中编辑。我无法使用Angular模式服务,因为它与页面上已经使用的Bootstrap CSS冲突。角度模态允许我从模态关闭的模态弹出窗口中取回值,但由于现有代码,我无法使用它。
要解决此问题,我将子对象传递给打开模式弹出窗口的函数。在这个函数中,我将这个传递的对象分配给一个Angular模型/ jQuery对象(比如" x")(我尝试的方式,它给出相同的结果),这样我就可以用更改来更新这个新对象x在模态弹出窗口中完成。
我相信这些变量被复制并指向同一个对象,当我更新一个时,它应该更新另一个,所以我的原始Angular模型也应该更新。但是,令我惊讶的是,在我再次打开模态弹出窗口之前,原始模型没有更新。当我再次打开模态弹出窗口时,它不会更新变量" x"但只是用我在页面上使用的ng-model更新。
为了进一步调试,我在页面上打印了我的ng-model,直到再次打开模态弹出窗口才更新它。如果我警告此ng模型的长度,则进一步对比这一点,它会更新(显示我在模态弹出窗口中所做的更改),但页面上的ng-model对象不显示新值。
我知道这更像是一个理论而且代码更少,但我不确定我的代码的哪一部分可以帮助找到问题。请告诉我,我会尝试清理我的代码并分享。
更新: 虽然进一步挖掘,看起来模型已更新,但它没有反映在页面上。因此,如果在页面上我有条件,如果没有子对象,显示添加按钮(否则编辑),当我第一次打开模态并向子对象添加值时,它不会从添加到编辑按钮更改。当我再次打开模态弹出窗口时,它会将链接从添加更改为编辑,即使我关闭模式弹出窗口而不进行更改。因此,屏幕刷新是一个问题(我的模型更新反映在屏幕上),而不是实际的模型更新。