Angular 1.xとSocket.ioを使用して小さなチャットアプリケーションを開発しています。利用可能な人が画面上でチャットを行うことを示すリストがあります。人をクリックすると、コントローラ内でチャット機能が呼び出されます。私は必要な人の情報(id、socket_idなど)を渡します。その後、私はdirectbookを使ってfacebookチャットボックスのようなチャットボックスを動的に作成し、domに追加します。ディレクティブは独立したスコープを持ちます。これは、人の上にクリックしたときにDOMにディレクティブを追加するコードです:AngularJS JavaScriptを使用してDOMに動的に命令を追加する
temp = {
'name' : driver.name,
'surname' : driver.surname,
'image' : driver.image
};
var divElement = angular.element(document.querySelector('.chat-container'));
var appendHtml = $compile('<chat-box receiver="' + temp +
'" id="' + driver.id + '" visible="true"></chat-box>')($scope);
divElement.append(appendHtml);
そして、ディレクティブコード:
.directive('chatBox', function($timeout) {
chatboxes = [];
return {
restrict : 'EA',
templateUrl : 'templates/chat.box.tpl.html',
replace : true,
scope : {
receiver : '@',
visible : '@',
id : '@'
},
link: function(scope, element, attrs) {
},
controller : function($scope) {
$scope.close = function() {
$scope.visible = false;
}
}
}
})
- 問題:私は(レシーバ= TEMP)オブジェクトデータを取得し、問題に直面していますその指示文を見て適用する。どのようにオブジェクトデータを送信し、ディレクティブで適切に処理できますか?
- 問題:ある人のチャットボックスを作成した後、同じ人の2番目のチャットを作成しないようにしたい。これをどうすれば処理できますか?