我的界面
{{message.user.name}}:
{{message.content}}
我的controller
atMoon.controller('roomCtrl',['$scope','myService', function ($scope, myService) {
$scope.sendMyMessage = function () {
console.log($scope.myMessage)
myService.sendMyMessage($scope, $scope.myMessage)
}
$scope.init = function () {
myService.getMessages($scope);
}
}])
打印的$scope.myMessage一直是undefine,如果我在controller中写上$scope.myMessage = "xxxx"能再界面中显示,所以数据只能从模型到视图,不能从视图到模型,求大神解答万分感谢
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
我怀疑你这是被 scope 的原型继承坑了
像
ion-content这些指令都是有各自的 scope 的,然后你在视图里写上ng-model="myMessage",其实你在输入框填入的内容是放到了ion-item的 scope 上了,而你的roomCtrl的 scope 里的myMessage依旧是undefined;而当你在控制器里给myMessage赋值完了以后,由于ion-item的 scope 上还没有myMessage属性,所以就会从原型链上找,进而找到了roomCtrl的 scope 上的myMessage。这是我常用的解决方案:
我也遇到了这个问题,貌似事angular.js-1.3.0版本的问题,低版本没出现过,进过测试实验,将myMessage放到一个Object中如下,可以测试通过,也不知道为啥(可能新版angular的优化了watch,watch过多会影响效率):
controller中设置
$scope.Messages={myMessage:""}