【问题标题】:Jquery and angular JS select dropdown selection without manual selectionJquery 和 Angular JS 选择下拉选择,无需手动选择
【发布时间】:2013-05-20 12:36:10
【问题描述】:

我有一个选择下拉菜单,我通过 Jquery append 动态添加选项,我想关联下拉列表中的所有数据,我的意思是所有选项都选择到 Angular JS 模型中。

我选择了

 <select  multiple='multiple' ng-model="attrId" name='attribute' id='hiddenRemoteChoicePossibleAnswers' ></select>

在几次服务器调用之后,我正在通过其他一些 Jquery 动态添加此选择的选项:

$('#hiddenRemoteChoicePossibleAnswers').append("<option selected='selected' value='"+optionValue+"'> "+optionValue+" </option>");

我希望在追加时更改 ng-modal 中的 attrId,但它根本不会更新,因为我必须手动选择所有选项,我必须关联模型中选项中的所有值。

任何帮助都会很有用。

提前致谢。

【问题讨论】:

  • 查看ng-options。 Angularjs 很好地做到了这一点,无需借助 jquery 方法。
  • 但是我必须在其他事件上动态添加选项,点击另一个按钮,下拉列表中将添加一个新选项,在提交表单时,我希望在其中添加所有值,以存储在数据库中,我无法在启动时添加所有值。
  • 我认为你是对的,我应该相应地更改所有内容,实际上我使用的是 jquery 模板和很多东西,我想要快速解决这个问题,因为在这种情况下我可能需要更改事情,但我认为这比临时修复更好。谢谢

标签: jquery jquery-ui angularjs angularjs-directive


【解决方案1】:

您正在做的不是角度方式。 AngularJS 是一个模型驱动的。 UI 操作也应该发生

  • 当模型更新时,会导致角度绑定重新 评价。
  • 使用指令

这意味着你不应该操纵 DOM 元素并期望 Angular 接受这些更改。

在您的情况下,您需要做的是在 $scope 上定义模型属性,该属性将是数组类型。

您要添加的数据使用 array.push 方法添加到此模型属性中,这将导致 UI 选择选项更新。

我强烈建议您在尝试所有这些内容之前阅读一些教程(包括 angular site 上的教程)。 Angular 是一个非常不同的野兽,来自 jquery 背景的人将很难使用它,直到对 Angular 的工作原理有了基本的了解。

这些链接会帮助你

http://blog.artlogic.com/2013/03/06/angularjs-for-jquery-developers/

http://www.egghead.io/ -> 角度不错的视频

【讨论】:

  • 谢谢,我想我应该更深入地研究 angular
猜你喜欢
  • 2018-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-29
  • 2017-10-17
  • 1970-01-01
相关资源
最近更新 更多