我正在尝试从socket.io事件加载数据,然后将其推入AngularJS视图中...问题是当触发socket.io事件时,插入新行但是{{message。 username}}和{{message.text}}为空。我做错了什么?
这是我的代码:
// Init AngularJS
var app = angular.module("ghat", []);
// Define room controller
app.controller("RoomCtrl", ["$scope", function($scope) {
$scope.messages = [];
$scope.pushMessage = function(message) {
console.log(message) // returns {username: "FezVrasta", text: "<p>hello</p>"}
// Push the new message to the messages array
$scope.messages.push(message);
$scope.$apply();
};
// Get new messages from socket
socket.on("chat message", function(message) {
$scope.pushMessage(message);
});
}]);
这是HTML:
<body ng-app="ghat">
<script type="text/ng-template" id="room.html">
<ul class="messages">
<li ng-repeat="message in messages" ng-include="'message.html'"></li>
</ul>
</script>
<script type="text/ng-template" id="message.html">
<span class="username">{{message.username}}</span>: <span class="message">{{message.text}}</span>
</script>
<div class="container-fluid" ng-controller="RoomCtrl">
<div class="room" ng-include="'room.html'"></div>
</div>
</body>
编辑:我注意到我的代码只有在我的Node.js + Express.js应用程序中运行时才能正常工作......
答案 0 :(得分:0)
发现问题。
我使用Mustache作为Express.js tpl引擎,因此在为页面提供服务时呈现NG变量。
我已经在{{=[[ ]]=}}
和[[={{ }}=]]
之间包装了NG视图,问题已修复