angularjs - (新手)自定义指令中的 ng-switch 会破坏双向绑定(bind)?

标签 angularjs angularjs-directive

我在自定义指令的 Angular 上遇到了两种方式绑定(bind)的问题。我有一个指令,它将具有编辑器模式(并具有不同类型的输入)和显示模式。

不幸的是,似乎如果有一个 ng-switch,则双向绑定(bind)会从控件中中断。但是,如果我从外部组件访问它,变量仍然是链接的。这是一个非常精简的示例 plunker 来显示问题。

http://plnkr.co/edit/M8gPfRlrVIXHdXREN1ai

如果您修改顶部输入,则更改会传播到底部输入。但是,如果您修改底部输入,则绑定(bind)会中断。
如何解决此问题,以便指令中对 ng-model 的更改传播到 Controller 范围?

最佳答案

您正面临这个问题,因为 Ng-Switch 创建了自己的范围

所以这个问题有两种解决方案

1)在模型中使用两个点

http://plnkr.co/edit/E7cE37VfrqatiMX885ZZ?p=preview

2) 在模型中使用 $parent

http://plnkr.co/edit/eaFYF5kgOnkhsGpdgzFA?p=preview

关于angularjs - (新手)自定义指令中的 ng-switch 会破坏双向绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18105053/

相关文章:

angularjs - 更改模板时如何卸载 AngularJS 指令

javascript - 比较 3 个对象并按照指示显示 1 个对象

javascript - AngularJs 更新 Controller 事件监听器中的 View

angularjs - 什么是angularjs中的$apply和$digest函数及其用法

javascript - AngularJS:如何在指令中使用 JS 脚本

javascript - 使用 angularjs 指令从 html 元素中提取绑定(bind)的 angularjs 数据

javascript - Angular-jQuery : Putting jQuery in a separate file and getting error 'Cannot read property ' top' of undefined'

javascript - 如何使用 Angular 获取对象内属性的长度

AngularJS - 如何在提交表单时忽略反跳?

angularjs - 在 Angular 中两次声明同一个指令的目的是什么?