AngularJS视图的变量没有增值

时间:2014-10-11 16:43:32

标签: angularjs socket.io

我正在尝试从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应用程序中运行时才能正常工作......

1 个答案:

答案 0 :(得分:0)

发现问题。

我使用Mustache作为Express.js tpl引擎,因此在为页面提供服务时呈现NG变量。

我已经在{{=[[ ]]=}}[[={{ }}=]]之间包装了NG视图,问题已修复