1

我是 Angular 的新手并且有一些基本问题,让 Angular-UI-Bootstrap 与 AngularJS 结合使用。这是一个简单的示例,一个使用 ng-change 进行事件处理的常用输入字段,并且有一个弹出框。没有 popover 属性,代码可以正常工作。添加弹出框属性后,弹出框正确显示,看起来不错,但是当输入字段的值更改时,没有调用事件处理程序,也没有更新密码模型。

同样的问题也存在,例如,如果我有一个带有事件处理代码和弹出框的按钮。如果我不使用弹出框,但使用工具提示,也会出现同样的问题。

<input type="password" ng-model="password" placeholder="New Password"
ng-change="onPasswordChanged()" popover="I am a popover!" 
popover-trigger="mouseenter" />

我正在使用 ui-bootstrap-tpls-0.3.0.js 和 AngularJS v1.0.7。

有人知道问题是什么吗?

4

1 回答 1

2

Popover 指令创建一个子范围,因此当您将模型绑定到基元时,绑定将保留在该范围内(它不会向上传播)。有关继承的更多信息,请参阅“ AngularJS 中范围原型/原型继承的细微差别是什么? ”。

解决方法是在引用模型时使用点符号:

<input type="password" ng-model="data.password" popover="I am a popover!" 
popover-trigger="mouseenter" />

演示柱塞

于 2013-06-24T08:45:35.030 回答