什么时候应该使用 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不识别数组或
对象更改。
- 就是比较复杂,这是很大的原因。
我正在构建一个指令,我将在我的应用程序的多个地方使用它。它是多 select 字段和提前输入的组合。要将数据来回传递到 multi-select 部分,我需要使用 ng-model
或我将双向绑定的范围 属性。
与双向绑定相比,使用 ng-model
是否有明显的优势?有缺点吗?
我必须做出决定,所以这就是我的想法。我最终选择了更简单的双向绑定解决方案。
以下是使用 ng-model
- 您可以提供验证行为
- 分离模型和视图,因为它将模型置于范围之外,因此组件中的更改不必立即反映到控件之外
- 它在元素上设置 css 类 用于动画和验证目的。
- 你不必选择名字
- 我们经常以这样的名字结尾:"model"、"items" 或 "data"
- 您可以使用
ngModelOptions
自定义ngModel
行为。例如易于使用的去抖动。
这里有一些缺点
- 按引用传递意味着ng-model不识别数组或 对象更改。
- 就是比较复杂,这是很大的原因。