JavaScript AngularJS An Introduction to Two-Way Data Binding Two-Way Binding: ngModelCtrl

Marc-Oliver Gern
Marc-Oliver Gern
8,747 Points

Don't know how to send data to console.log

Tried everything.

app.js
angular.module('myApp', [])
.controller('myController', function($scope) {
  $scope.user = {
    name: 'Alex'
  };
})
.directive('myDirective', function () {
  return {
    require: 'ngModel',
    priority: 1,
    link: function ($scope, $element, $attrs, ngModelCtrl) {

      // YOUR CODE HERE
      ngModelCtrl.$render = function () {
        $console.log
      }


    }
  }
});
index.html
<!DOCTYPE html>
<html ng-app="myApp">
<head>
  <title>Angular.js</title>
  <script src="js/angular.js"></script>
  <script src="app.js"></script>
</head>
<body ng-controller="myController">

  <p>Hello {{user.name}}</p>
  <input type="text" ng-model="user.name" />
  <div my-directive ng-model="user.name"></div>

</body>
</html>

5 Answers

Steve Gardner
Steve Gardner
17,786 Points

Marc,

You are close. You need to cache the input value from $viewValue into a variable. Then you can pass the input, now in a variable named contents to the console.

ngModelCtrl.$render = function() {
  var contents = ngModelCtrl.$viewValue;
  console.log(contents);
}
Austin Whipple
Austin Whipple
27,491 Points

You may need to pass the .log() method something to actually log. This can be almost anything, really. Including a string or another function:

var myfunc = function() {
   console.log("Hello, world!");
}
Marc-Oliver Gern
Marc-Oliver Gern
8,747 Points

Thanks Milos, I wanted to point you guys to that page :-)

Marc you can't sahre the code like that you have to paste it here....

Marc-Oliver Gern
Marc-Oliver Gern
8,747 Points

Thanks, Steve :-) That did the trick. Should go back to JavaScript 101.