Angular release binding model?

Hey. I am new to angular js and trying to write a chat application using the io socket and angular js with ionic platform for Android. But there is one problem on my chat page. I try to bind a variable textboxto a variable $scope.messageusing ng-model, but it does not get binding as a test, when I show the same variable value on the page itself, it works as it is, but in the controller I get the value as undefinedor empty

index.html

  <body ng-app="farmApp" ng-controller="farmAppController" > 
    <ion-content>
      <ul id="Messeges">
          <li class="right">Welcome to Chat</li>
          <li ng-repeat="chatMessage in messages">
              {{chatMessage}}
          </li>
      </ul>
          <form ng-submit="sendMessage()">
           <input placeholder="Your message" ng-model="message"> 

            <input type="submit" name="send" id="send" value="Send" class="btn btn-success">
              <br/>
              {{message}} //This updates the value as i type in textbox 
              </form>
  </ion-content>
 </body>

but when I see the print of this model on the console, it shows undefined, when I define at the beginning in the controller, then it shows an empty value

Controller.js

   var farmAppControllers = angular.module('farmAppControllers',[]);


   farmAppControllers.controller('farmAppController',['$scope','socket',function($scope,socket){
         $scope.messages = [];
         $scope.message = ''; //When i don't declare then console shows undefined on sendMessage function if declared then empty
         socket.on("update", function (data) {
             console.log(data);
             $scope.messages.push(data);
         });

        $scope.sendMessage = function (){
              console.log($scope);
              console.log($scope.message); // This shows undefined or empty on console
              socket.emit("msg",$scope.message);
               $scope.messages.push($scope.message);
               $scope.message ='';
        };
   }]);

My app.js

  'use strict';

  var farmApp = angular.module('farmApp', ['farmAppControllers','farmAppServices','ionic']);

And services.js for a socket shell

  var farmAppServices = angular.module('farmAppServices',[]);


  farmAppServices.factory("socket",function($rootScope){
      var socket = io.connect();
      return {
       on:function (eventName,callBack){
        socket.on(eventName,function(){
            var args = arguments;
            $rootScope.$apply(function(){
                callBack.apply(socket,args);
            });
         });
       },
      emit:function(eventName,data,callBack){
        socket.emit(eventName,data,function(){
            var args = arguments;
            $rootScope.$apply(function(){
                if(callBack){
                    callBack.apply(socket,args);
                }
            });
        });
      }
    };
 });

... , . . .


UPDATE

, , , ng-submit ? ? , ?

+4
1

, <ion-content>, , , . :

, . , , https://docs.angularjs.org/guide/scope.

message . , sendMessage - , , , - .

, , "" , .

$scope.package = {} 
$scope.package.messages = [];
$scope.package.message = 'You default message...';

:

$scope.package.messages.push($scope.package.message);

:

<input placeholder="Your message" ng-model="package.message"> 

plunker . , , . , .

+3

Source: https://habr.com/ru/post/1541883/


All Articles