javascript - 如何在没有双向绑定(bind)的情况下将 ngModel 传递给 AngularJS 组件?

标签 javascript angularjs angularjs-controller angular-ngmodel angularjs-components

我有custom input as AngularJS 1.5 component使用单向数据绑定(bind)和 ngModel 作为双向数据绑定(bind):

return {
     bindings: {
       form: "<",
       fieldName: "@",
       minLength: "@",
       maxLength: "@",
       isRequired: "@",
       errors: "<", 
       value: "=ngModel"
     },
     templateUrl: "actTextField.html",
     controller: ActTextFieldController,
   }

在提供的 Plunk 中的文件 actTextField.js 中。我要关注A new Angular 1.x ES2015 styleguide, the path to Angular 2托德写道:

We no longer should utilise two-way data-binding through '=' syntax for bindings

Use one-way databinding '<' and functions '&'

因此,ngModel 的 2-way 数据绑定(bind)可能不是一个好的选择,它应该是 1-way。另一方面,我想让组件尽可能简单——例如,没有 on-change 回调。它应该接近原生 inputngModel 指令。是否可以在没有双向数据绑定(bind)的情况下将 ngModel 传递给组件,同时能够从组件更改其值,以避免(例如)额外的回调?预先感谢您的每一个回答。

最佳答案

如果您打算使用 Angular 组件,请尝试明智地使用一种绑定(bind)方式。在他的 View 模型中托管模型的上层父级应该是唯一能够修改它的父级。如果你想让子组件修改模型,你需要这样传递一个函数:

bindings: {
   updateUsername : '&', // Function
   user : '<'            // Model
}

他们这样做是为了简化 Angular 概念并使用指令减少页面上的事件数量。

关于javascript - 如何在没有双向绑定(bind)的情况下将 ngModel 传递给 AngularJS 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38953377/

相关文章:

javascript - 如何使图像之间的过渡平滑

javascript - 从外部访问回调函数的此对象

javascript - AngularJS ngShow 和焦点

javascript - 不验证 ng-hide 下的表单元素

angularjs - 如何在angularjs中调用 Controller 中的函数?

javascript - 根据 AngularJS 服务值的变化更新指令

javascript - 有没有办法拖动和复制,但防止 "draggable"下降? (JavaScript)

javascript - JS/JQUERY : Moving numbered table rows up and down without losing user input

javascript - 我怎样才能改变angularjs spinners的颜色

javascript - 如果我让所有数据对所有 Controller 可用,我会遇到什么问题?