大約3個星期前我開始使用AngularJS,並開始編寫一個簡單的應用程序,它從外部庫(OnReceiveMessage)獲取異步數據,然後(使用Angular)編輯範圍,以便顯示消息並執行其他操作甚至在此消息中回覆。 首先,我開始將對象聲明爲應用程序控制器,並且它可以工作,但這是一團糟,這不是正確的做法。 我的問題是:我怎樣才能啓動這個異步客戶端(通過網絡套接字通信),並將這個庫的外部函數(發送和異步接收)轉換成Angular來做它的東西(範圍,回覆等...)角度如何捕獲外部異步第三方回調函數?
external.js
Example:
var client = new ExtClient({params}); //not setting callbacks
Client.onMessageArrived = myCallbackHandler;
var message = new ExtMessage("Hi there");
Client.send(message);
function myCallbackHandler(message) {
console.log("onMessageArrived");
}
app.js
var app = angular.module('myApp', ['connectionService']);
app.controller('MainController', [ '$scope',
function($scope) {
//I want to catch the myCallbackHandler function async with the message
//and use the client.send(message) with the response...
$scope.messageTable.push({message.id, message.value}); //messageTable is bind in the view to create a table
}]);
太棒了,謝謝! 這有助於很多,特別是當一個對象需要更新和事件掛鉤被清除...並保持與javascript的異步本質的連貫性我想知道,是否有另一條路徑優雅呢?就像在普通的js中一樣,如果新對象不會觸發新事件,我該如何處理呢? – dlubrano