2016-04-28 2 views
0

Мне нужно слушать данные, поступающие из сокета. Chrome пожары эта функция:угловойJS часы получены данные из сокета

chrome.sockets.tcp.onReceive.addListener(function(info) { 
    console.log(info); 
}); 

Я хочу, чтобы мой угловой Controll, чтобы получить эту информацию. , если я это сделать:

chrome.sockets.tcp.onReceive.addListener(function(info) { 
    $scope.$broadcast("newData", info.data); 
}); 

$scope.$on("newData", function (event, data){ 
    console.log(data); 
    $scope.text = data; 
}); 

текст модель dosen't обновляется.

Есть ли способ получить обновление цикла и не использовать функцию apply?

Я пробовал использовать $ watch, но у меня все получилось.

+1

Вы пробовали $ scope. $ Apply() '? Почему вы не хотите использовать это? – Patrick

+0

Потому что все еще блокирует цикл, и мне нужно будет добавить его к некоторым другим функциям. , если это не так, и нет другого. – JoeBoy

+0

применять * * способ обновления вида. Что вы имеете в виду, когда говорите, что это блокирует? Не могли бы вы добавить его в '$ timeout (function() {$ scope.text = data;});' и заставить его выполнить «как только это возможно» вместо ? – Patrick

ответ

0

Если вы изменяете, где вы сохраняете данные, привязка будет работать должным образом. Вместо обновления свойства объекта $ scope на один уровень глубже.

$scope.values.text = data; 

Обязательно обновите контроллер, чтобы включить создание объекта значений.

// in controller 
$scope.values = { 
    data: '' 
}; 
Смежные вопросы