2016-03-26 5 views
0

Ich habe einen kleinen Teil der Codes mit $watch aber feuert nicht, wenn eine Eingabe mit Autocomplete (jQuery-Plugin) eingegeben. nur feuert es, wenn die manuelle Eingabe Eingabe

app.directive("autoCode", ['elementData', function(elementData) { 
    var codes = elementData.map(function(ele){ 
     return ele.Code; 
    });  
    return { 
    restrict: 'A', 
    scope:{   
    }, 
     link: function(scope, element, attrs) {  
     $(element).autocomplete({source:[codes]});  
    }}; 
}]); 

app.controller('transactionCtrl',['$scope','elementData', function($scope, elementData){ 
    var names = elementData.map(function(ele) { 
     return ele.Name; 
    }), 
    codes = elementData.map(function(ele) { 
     return ele.Code; 
    }); 

    $scope.$watch('code', function(codeValue){ 
     console.log(codeValue); 

    }); 
}]); 

unten html ist:

<form > 

    Code: <input type="text" name="code" auto-code ng-model="code"> 
    Name: <input type="text" name="name" auto-name ng-model="name"> 

    </form> 

Wie es mit manueller Eingabe und die automatische Vervollständigung funktioniert?

+0

Hallo, bitte bieten Sie eine volle plunkr –

+0

Können Sie eine Arbeitsgeige bieten? So können wir das Problem beheben. Es sollte Ihre 'Auto-Code'-Direktive sein, die das Modell der' Code'-Variable nicht zuweist. –

+0

Hallo, geben Sie nur verwandte Teile von Codes an. Könntest du bitte helfen? – user2671755

Antwort

0

Versuchen:

$scope.$watch($("input[name='code']").length, function(codeValue){ 
     console.log(codeValue); 

    }); 

O so ähnlich. Sie müssen die Uhr über einen Wert setzen, der für viele Male geändert wird