关于javascript:通过AngularJS中的弹出框传递模型值

Passing a model value through a popover in AngularJS

本问题已经有最佳答案,请猛点这里访问。

我想使用引导弹出(从角度引导)来修改控制器的$scope上的模型值。似乎Popover模板断开了某些连接。

我举了一个小例子来说明我的问题:

指令1(master-directive将模型作为独立作用域属性。它的模板是一个显示弹出窗口的按钮。Popover的模板显示了指令2(sub-directive,它通过一个独立的作用域属性来传递模型值,并包含一些用于修改该属性的UI控件(在演示中,这只是一个鼠标单击)。

通常,更改会传播回控制器(sub-directive模型与master-directive模型是双向绑定的,后者随后是双向绑定到控制器模型。但是,当在弹出窗口中使用包含sub-directive的模板时,sub-directivemaster-directive之间的双向绑定被破坏。在sub-directive中对模型的任何更改都将保持在该指令的本地,并且不会向上传播。

相关设备:http://plnkr.co/edit/3znmnutajxsahjjcdkkj?P=预览

这是同样的普朗克,没有波波菲尔,表明它的工作:http://plnkr.co/edit/mr4djvzcpeukgdzpyvv?P=预览

是否缺少一个步骤来弥补Popover模块引入的间隙?


如果您将数据存储在一个对象中,而不是一个javascript原语(数字),那么问题就解决了。砰的一声

将数据存储在这样的对象中:

1
$scope.data = { num: 5 };

而不是这个:

1
$scope.num = 5;

我的假设是,Popover正在创建子范围。B/C对于原型继承的工作方式,子作用域中的数字属性隐藏父级中的数字属性(例如,父级的值在子级的情况下不会更改)。