什么时候应该使用 ng-model 而不是绑定到 angularjs 中的 属性?

When should ng-model be used as opposed to binding to a property in angularjs?

我正在构建一个指令,我将在我的应用程序的多个地方使用它。它是多 select 字段和提前输入的组合。要将数据来回传递到 multi-select 部分,我需要使用 ng-model 或我将双向绑定的范围 属性。

与双向绑定相比,使用 ng-model 是否有明显的优势?有缺点吗?

我必须做出决定,所以这就是我的想法。我最终选择了更简单的双向绑定解决方案。

以下是使用 ng-model

的优势
  • 您可以提供验证行为
  • 分离模型和视图,因为它将模型置于范围之外,因此组件中的更改不必立即反映到控件之外
  • 它在元素上设置 css 类 用于动画和验证目的。
  • 你不必选择名字
    • 我们经常以这样的名字结尾:"model"、"items" 或 "data"
  • 您可以使用 ngModelOptions 自定义 ngModel 行为。例如易于使用的去抖动。

这里有一些缺点

  • 按引用传递意味着ng-model不识别数组或 对象更改。
  • 就是比较复杂,这是很大的原因。