2016-07-08 6 views
0

Я хочу использовать этот метод (который выводит сообщение, если пользователь печатает) с помощью службы. метод обновляет информацию varible (устанавливает свой текст в «набрав» или пробел).

Я думал об использовании этого метода в качестве услуги моей угловой модели. проблема в том, что этот метод нуждается в доступе к текстовому варианту {{info}} с ситами внутри представления (некоторые html).

Как я могу это сделать? мой код ниже .... Благодаря

файл

JS

mymodule.controller("cntrlChat", ['$scope','isUserTypingService', 
    function($scope,isUserTypingService){ 

    $scope.isUserTyping=function(){ 
    isUserTypingService($scope.info); 

    } 

}]); 

mymodule.factory('isUserTypingService',['$q','$timeout', function($q,$timeout) { 

    var isUserTyping= function(info) { 
    runTwoFunctionWithSleepBetweenThem(function(){info='user is typing...';},function(){info='';},3500); 
    }; 

    var runTwoFunctionWithSleepBetweenThem=function(foo1, foo2, time) { 
    $q.when(foo1()).then(() => $timeout(foo2, time)); 
    } 
    return isUserTyping; 
}]); 

index.html

<html> 
<head> 

    <script data-require="[email protected]" src="https://code.angularjs.org/1.4.9/angular.js" data-semver="1.4.9"> 
    </script> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.js"></script> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.1/angular-ui-router.min.js"></script> 
    <script src="/socket.io/socket.io.js"></script> 
    <script src="script.js"></script> 

    <link rel="stylesheet" type="text/css" href="../css/style.css"> 
</head> 

<div ng-app="mymodule" ng-view> 
</div> 


</html> 

chat.html

{{info}} 

ответ

1

вы могли бы сделать что-то вроде этого :

<input ng-model="userInput" ng-change="runWhenTyping()" /> 

в контроллере:

$scope.userInput = '';  
$scope.runWhenTyping = function() { isUserTypingService($scope.userInput) } 

Каждый раз, когда они печатают runWhenTyping будет называться и в свою очередь, это будет вызывать службу.

+0

в этом вызове: isUserTypingService ($ scope.userInput) $ scope.userInput pass как значение ссылки? – Matoy

+0

да, он передается в качестве ссылки, поэтому вы можете изменить его в службе –

Смежные вопросы