Я использую SignalR с приложением Angular2, где мы хотим, чтобы методы клиента SignalR вызывали в приложение Angular с данными, полученными с сервера, а затем Angular переделывали привязки данных. Например, в приложении Angular я выставляю глобальную переменную для нашего магазина, на которой есть коллекция.
например. (TypeScript)
....
export class Store{
Customers : Customer[];
constructor(){
window["GlobalStore"] = this;
}
setCustomers (customers : Customer[]){
this.Customers = customers;
}
}
....
и в моем клиенте SignalR javascript У меня есть функция:
$.connection.MyHub.client.receive = function(data){
//Call into the Angular app and set data, which is then rendered in views
//via data-binding
//data contains a json array of customers
window.GlobalStore.setCustomers(data);
}
Кажется, что это работает и устанавливает данные в хранилище, однако, когда данные reset Angular, похоже, не обнаруживают изменений, и, следовательно, пользовательский интерфейс не обновляется.
Это не проблема с типизацией данных, так как даже прохождение простой строки/целого и т.д. в хранилище правильно задает свойство store при отладке, однако структура Angular, похоже, не запускает обнаружение изменений и обновить представления.
Любые идеи о том, как либо: A) Вручную запускать привязку Angular, чтобы она обновляла представление? B) Вызовите методы в приложении Angular 2 из внешнего с помощью другого средства?
Спасибо