在范围内的Angular绑定模型问题?
在范围内的Angular绑定模型问题?
我是Angular JS的新手,正在尝试使用Socket IO和Angular JS与Ionic开发Android平台的聊天应用程序。但是在我的聊天页面上出现了一个问题。
我尝试使用ng-model将文本框绑定到$scope.message变量,但它没有被绑定,因为当我在页面中显示相同变量的值时,它按原样工作,但在控制器中,我得到的值为undefined或者为空。
在index.html中
- Welcome to Chat
- {{chatMessage}}
但是当我在控制台上打印该模型时,如果我在控制器的开始处定义它,它显示为undefined,然后它显示为空值。
在Controller.js中
var farmAppControllers = angular.module('farmAppControllers',[]); farmAppControllers.controller('farmAppController',['$scope','socket',function($scope,socket){ $scope.messages = []; $scope.message = ''; socket.on("update", function (data) { console.log(data); $scope.messages.push(data); }); $scope.sendMessage = function (){ console.log($scope); console.log($scope.message); socket.emit("msg",$scope.message); $scope.messages.push($scope.message); $scope.message =''; }; }]);
在app.js中
'use strict'; var farmApp = angular.module('farmApp', ['farmAppControllers','farmAppServices','ionic']);
以及Socket包装器的services.js
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); } }); }); } }; });
我卡在这里...我试图在Google上搜索解决方法,但无法解决。如果有任何疑问,请随时发表评论。任何帮助都将是非常棒的。
更新:
当我使用此问题的第一个答案时,问题得到解决,但是仍然不清楚为什么ng-submit不起作用?有什么想法吗?因为似乎我仍然无法从控制器更新视图范围?