angularjs - 绑定(bind)停止在 ng-if 中的输入中工作

标签 angularjs

由于某种原因,绑定(bind)在 ng-if 内的输入上不起作用在指令中阻止

所以这不起作用:

app.directive 'foo', ->
    restrict: 'E'
    scope:
       type:'='
    template: "<input ng-if=\"type === 'string'\" ng-model='filterText'>
                  <div> {{filterText}} </div>"


<foo type="'string'" />

它在指令之外或没有 ng-if 的情况下都能正常工作.使用 ng-if 在 div 内包装输入没有帮助。它是一个错误吗?

jsbin link

最佳答案

这是由于 ng-if 引入了一个新的范围以及您的 ng-model “其中没有点”这一事实引起的。

这有效:

template: "<div ng-init='holder={}'> <input ng-if=\"type === 'string'\" ng-model='holder.filterText'></div>
               <div> {{holder.filterText}}</div>"

请参阅 https://docs.angularjs.org/api/ng/directive/ngIf 上的指令信息并注意文本“此指令创建新范围”。
对于“模型中的点”,请参见例如
Does my ng-model really need to have a dot to avoid child $scope problems?
或者
https://egghead.io/lessons/angularjs-the-dot
基本上,在读取值时,它将通过范围原型(prototype)正确读取,但在修改值时,它将被写入自己的范围。

关于angularjs - 绑定(bind)停止在 ng-if 中的输入中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26107621/

相关文章:

javascript - 使用单选按钮重复 ng 时出现错误

javascript - angular $parse 作为一个指令参数爆炸了

css - 如何为 Angular.js 显示/隐藏添加平滑过渡?

javascript - 更新 Angular forEach 内部的外部变量

javascript - 返回对象时以下未定义

javascript - AngularJS:访问存储在 jQuery cookie 中的 json 数据

javascript - 最初使用 Angular JS 将事件类添加到第一个 JSON 数据对象的导航链接

angularjs - 使用 RequireJS 进行 Angular 服务注入(inject)

javascript - Angular $location 更改路径第二次起作用,而不是第一次

javascript - 处理 Angular Gantt 上的单元格单击事件