【问题标题】:angular input ng-bind not working角度输入 ng-bind 不起作用
【发布时间】:2015-08-31 10:31:08
【问题描述】:

这是代码:

        <span>{{ vm.GetSalaryItemValue(salaryItem,detail) }}</span>
        <input type="number" class="form-control" data-ng-bind="vm.GetSalaryItemValue(salaryItem,detail)" />
        <textarea  class="form-control" data-ng-bind="vm.GetSalaryItemValue(salaryItem,detail)" rows="1"
                    ng-blur="vm.SalaryItemValueChanged($event,salaryItem,detail)"></textarea>               

span 和 textarea 工作正常并显示价值, 但是输入标签不起作用并且什么也不显示。 (span 和 textarea 仅用于测试) (salaryItem,详细信息正确传递), 如果我将 ng-bind 更改为 ng-model,会显示值但会抛出错误。

有什么想法吗?

【问题讨论】:

  • 您在 ng-model 中遇到什么错误?
  • ng-bind 与 ng-model 不同。

标签: angularjs ng-bind


【解决方案1】:

如果您想以一种方式绑定到文本框的值,即从计算函数中,请使用ng-value。请注意,放置在那里的任何输入都将无法读取。这仅对不需要双向绑定的只读或禁用文本框真正有用。

【讨论】:

  • 问题是:为什么 textarea 工作正常但输入不?
  • 因为 ng-bind 绑定了标签的“内部 HTML”。内部 HTML 指的是开始和结束标记之间的内容,即 这是内部 HTML。就动态内容的存储位置而言,输入和文本区域的工作方式不同。输入标签是 因此它没有内部 HTML,您必须使用 ng-value 或 ng-model 与 value 属性交互。 textarea 标签是 所以它有可以使用 ng-bind 绑定的内部 HTML。
  • 对上述 cmets 中的问题和答案加一。
【解决方案2】:

将输入代码更改为使用ng-model 而不是ng-bind,并将vm.GetSalaryItemValue(salaryItem,detail) 的输出分配给范围变量:

<div ng-init="inputNumber = vm.GetSalaryItemValue(salaryItem,detail)"></div>
<input type="number" class="form-control" data-ng-model="inputNumber" />

您需要分配作用域变量,因为ng-model 无法执行该函数。

【讨论】:

  • 这是您使用代码产生的错误:"Error: [ngModel:nonassign] http://errors.angularjs.org/1.4.5/ngModel/nonassign?p0=getName()&amp;p1=%3Cinput"lass%3D%22ng-pristine%20ng-untouched%20ng-valid%22%20ng-model%3D%22getName()%22%20type%3D%22text%22%3E
  • 我需要根据参数动态计算值,并生成输入,所以没有要绑定的变量(我的意思是我不能为每个输入生成变量)
  • textarea 工作正常,输入有问题(可能是bug)
  • 不,没有错误。您正在混合使用 ng-bind 和 ng-model。 ng-bind 计算表达式以设置元素的文本值,而 ng-model 绑定到相应控制器中的属性。您正在使用一个表达式绑定到 ng-model 并且非常希望它能够工作。
  • 正如我提到的,它与“Textarea”一起工作,问题是“输入”,如果我将 TextArea 更改为输入,它就会停止工作。我到底在哪里使用了 ng-model?如果您查看示例,我正在使用 ng-blur (focus-out),所以请仔细阅读
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-24
  • 2014-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-03
相关资源
最近更新 更多