W3docs

angular · Angular Basics

Which directive connects the value of the controls to the data?

Answers

  • ng-app
  • ng-init
  • ng-model
# Understanding the ng-model Directive in AngularJS In AngularJS, the `ng-model` directive binds the value of HTML controls (like input, select, textarea) to the application data. This connection allows a remarkable feature of AngularJS known as two-way data binding: not only can changes to your application's data update the view, but changes to the view can promptly update your application's data. Let's consider a practical example. Supposing we have a simple input field for a user's name and we want to display it in real-time as the user types. We can achieve this using the `ng-model` directive as follows: ```html

Hello, {{username}}!

``` As the user types in the input field, the value of `username` is updated instantly, and the text within the paragraph tag reflects the username currently being typed. This is the functionality and power brought by the `ng-model` directive. Unlike `ng-model`, the `ng-app` and `ng-init` directives have different roles. The `ng-app` directive initializes an AngularJS application, acting as a root element. The `ng-init` directive, meanwhile, is used to initialize application data. Neither one binds the value of the controls to the data. A best practice regarding `ng-model` is that it should be used with a dot in models. This is known as the "Dot Rule." Using a dot ensures that prototypal inheritance is used correctly, and it can save you from possible headaches caused by coding errors related to scope. To conclude, the `ng-model` directive is a powerful tool that creates a robust connection between the view and the model, and it offers live synchronization of data in angular applications. Its appropriate and careful use can greatly enhance your application's responsiveness and user experience.