【问题标题】:Changing the value of ng-model bound html element using jquery使用 jquery 更改 ng-model 绑定 html 元素的值
【发布时间】:2013-05-13 18:32:42
【问题描述】:

我有一个带有选择框、文本、数字类型输入等的长表单。我希望当用户单击表单的提交按钮时,我们检查哪些字段当前为空,然后用虚拟值填充这些字段这样当我最终读取值时,我会得到正确的范围变量值。

我正在使用 jQuery 检查字段是否为空,然后使用 jQuery 填充这些字段。

发生的情况是,尽管填充了字段,但范围 vars 的值没有改变......我该如何改变这个???

这是一个小提琴:LINK

我想要的是在此处单击“单击”,因为输入内容为 bhumiak,<h1>Hello {{yourName}}!</h1> 也应如此

如何做到这一点?

【问题讨论】:

标签: jquery angularjs angularjs-scope


【解决方案1】:

是的,正如 lucuma 已经提到的,你不应该用 jQuery 来做这件事,而应该用有角度的方式来做。

Angular 已经可以自己填充输出字符串而无需额外的代码,如下所示:

<div ng-app="myApp" ng-controller="MyCtrl">
    <label>Name:</label>
    <input type="text" id="na" ng-model="yourName" placeholder="Enter a name here"/>
    <input type="button" value="click" ng-click="myClick()"/>
    <h1>Hello {{yourName}}!</h1>
</div>

看看这个fiddle,我做了一个例子:http://jsfiddle.net/marcorinck/zYyLf/

是的,您可以在需要时调用 $apply(尤其是在指令中),但首先您应该给 $apply 一个函数参数,其次您应该在这个函数中进行更改,以便 angularJS 可以获取。

有关 $apply 的进一步说明,请查看此博客文章:http://jimhoskins.com/2012/12/17/angularjs-and-apply.html

【讨论】:

  • 感谢您的回复,但是您在这里所做的是您手动更新了 var,如果您有 10 个这样的 var,您将不得不更新 10 次。这不是一个好方法。我想用一个通用代码更新所有 10 个变量
  • 我不太了解您的用例,但我的示例是将视图与控制器和模型分开的角度方式。如果你想改变你的模型(也就是一些 javascript 对象),你必须手动更新它们。复杂程度取决于您,您可以通过多种不同方式定义模型对象。
猜你喜欢
  • 2015-10-18
  • 1970-01-01
  • 1970-01-01
  • 2016-07-16
  • 2018-12-06
  • 1970-01-01
  • 1970-01-01
  • 2017-09-06
  • 1970-01-01
相关资源
最近更新 更多