javascript - Angular - 添加选项以使用 Jquery 进行选择

标签 javascript jquery html angularjs angularjs-directive

我有一个向选择添加新选项的指令。

为此,我正在使用:

let opt: any = angular.element(
            '<option value="' + opcion.valor + '">' + opcion.texto + '</option>'
          );
          this.element.append(this.$compile(opt)(scope));

我不想使用模板,因为我不想要新的范围。

选项被添加到 View 的列表中。但是当我选择其中一些时,选择的 ng-model 不会更新。它获得值 null

如何使用新的选项值使 Angular 刷新?

这是一个代码笔示例: 选择选项 X 不会反射(reflect)在模型上。

奇怪的是,如果我链接到 angular 1.5.9,它可以工作,但从 angular 1.6.0 开始就不行。

https://codepen.io/anon/pen/XemqGb?editors=0010

最佳答案

How can i make angular to refresh with the new option values ?

您不需要这样做。更新 modeldata bindingdigest cicle 完成。

数据绑定(bind) 意味着当您更改 View 中的内容时,scope 模型自动更新。

您只需更新您的scopedigest cicle 会处理其余的工作。

我建议您不要将 jqueryangularJS 混合使用。

尽管可能,您绝对应该尝试以 Angular 的方式做事。

你不应该在 AngularJS 之上使用 jQuery,因为 AngularJS digest 循环不会如果我们使用 JQuery 进行任何 Angular DOM 操作或范围变量操作,则会运行。

但是,您可以使用 $scope.$apply() 方法通过传递一个回调手动执行此操作> 功能。

HTML

<select ng-model="selectedValue">
  ....
</select>

JS

$('select').change(function(){
    var value = $(this).val();
    var selectScope = angular.element($("select")).scope();
    selectScope.$apply(function(){
        selectScope.selectedValue=value;
    });
});

关于javascript - Angular - 添加选项以使用 Jquery 进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46267289/

相关文章:

css - 带分辨率的 HTML 缩放表

javascript - 在 Wordpress 帖子中使用 jQuery

javascript - 正则表达式匹配一个额外的空组

javascript - 显示正在加载 gif 图像,直到函数成功

javascript - 如何让按钮点击后凹陷?

javascript - 通过包含 jQuery 和 jQuery UI,我是否加载了 jQuery 两次?

javascript - 在 Windows7 上安装 SRA-SiliconValley Jalangi 失败

c# - 如何设置查询字符串中的变量

javascript - 如何通过单击位于该 li 内部的跨度内的相应图标来删除 <li> 或选中/取消选中 <li>?

javascript - 如何在不移动父元素的情况下加载在特定位置显示 div 的页面