2014-01-16 88 views
1

我有以下代碼

// Generated by CoffeeScript 1.6.3 
(function() { 
    "use strict"; 
    var chatModule; 

    chatModule = angular.module('chatModule', ['diplomovaPraceFrontendApp']); 

    chatModule.service('chatModuleService', function(UserService, socket) { 
    var obj, 
     _this = this; 
    obj = {}; 
    obj.chats = []; 
    obj.initiate = function(from) { 
     if (!_.has(obj.chats, from)) { 
     return obj.chats[from] = { 
      messages: [] 
     }; 
     } 
    }; 
    obj.logIncoming = function(data) { 
     return obj.chats[data.from].messages.push({ 
     text: data.message, 
     type: 'in' 
     }); 
    }; 
    obj.send = function(chat) { 
     return socket.emit('private-message', { 
     to: chat.profile_hash, 
     from: UserService.profile_hash, 
     message: chat.message 
     }); 
    }; 
    socket.on('private-message', function(data) { 
     return obj.logIncoming(data); 
    }); 
    return obj; 
    }); 

    chatModule.directive('chat', function() { 
    return { 
     restrict: 'E', 
     templateUrl: 'scripts/modules/ChatModule/chatModule.html' 
    }; 
    }); 

    chatModule.controller('ChatCtrl', function($scope, chatModuleService) { 
    $scope.send = function(chat) { 
     return chatModuleService.send(chat); 
    }; 
    return $scope.chats = chatModuleService.chats; 
    }); 

}).call(this); 

如果我沒有記錯的話,改變了服務的價值時,被分配到$scope,它會自動更新$scope的變量,因此更新對應的HTML。但這似乎並沒有發生。

+0

現在看起來更好:) – Dalorzo

+0

對不起,沒意識到:) – MelkorNemesis

回答

0

我解決它自己的問題是:

obj.chats = []; 

應該是:

obj.chats = {}; 

最好的是控制檯沒有給我任何錯誤或線索。