2017-09-12 3 views
0

Ich habe ein Problem. Ich habe einen Controller:Controller in externe Datei in angularjs Direktive

app.controller("controllerLots", ["$scope", "factoryClient", "factoryLots", "factoryContracts", "fillTicketFactory", function ($scope, factoryClient, factoryLots, factoryContracts, fillTicketFactory) { 
    var vm1 = this; 
    vm1.lot = {}; 
    vm1.lots = []; 
    vm1.client = {}; 
    vm1.ticket = {}; 
    vm1.clientFindDB = []; 
    // vm1.filterName =vm1.client.clientName +""+vm1.client.clientFn+"" +vm1.client.clientPatroncyr; 
    // vm1.filterPassport = vm1.client.clientSerialPass + vm1.client.clientNumberPass; 



    vm1.selectClient =function(client){ 
     vm1.client=client; 
     vm1.filterName = vm1.client.clientName +''+vm1.client.clientFn +''+vm1.client.clientPatroncyr; 
     vm1.filterPassport = vm1.client.clientSerialPass +""+vm1.client.clientNumberPass; 
    } 

    vm1.addLot = function() { 
     if (angular.isUndefined(vm1.lot.orderNumberLot) || vm1.lot.n <= 0) { 
      vm1.lots.push(vm1.lot); 
      vm1.lot.n = vm1.lots.length; 
     } 
     vm1.lot = {}; 
    } 

und ich habe eine Richtlinie, in der ich möchte von oben Controller einige Funktionen setzen, das ist meine Richtlinie nun wie folgt aussieht:

app.directive("searchDir", [function(){ 
    return{ 
     scope:{ 
      filterName: '=', 
      filterPass:'=' 
     }, 
     templateUrl:'searchDirective.html', 
     replace:true, 
     controllerAs:'ctrl', 
     controller:controller 
    } }]); 

Wie kann ich diese Funktionen nutzen in meiner Direktive? Vielen Dank.

+0

Sie können untersuchen, wie Sie den Direktivenfunktionsbindungs ​​'&' verwenden. – Icycool

Antwort

0

Wie kann ich diese Funktionen in meiner Direktive verwenden?

Ich denke, was Sie fragen, ist, wie Sie diese Funktionen in Ihrer Richtlinie Vorlage verwenden können. Dazu müssen Sie alle Eigenschaften, auf die Sie in der Vorlage zugreifen wollen, dem "Geltungsbereich" hinzufügen.

  1. In Ihrer Richtlinie die Eigenschaft Controller Änderung der Richtlinie wie:

    Controller:

  2. 'controllerLots' Und in Ihrem Controller, statt Hinzufügen von Eigenschaften zu "this", fügen die Eigenschaften zu "$ scope".

+0

Danke für die Antwort, ich habe versucht, was Sie vorgeschlagen, aber nichts passiert ist. –

+0

Hallo. Wo versuchst du genau diese Methoden anzuwenden? Wenn Sie Ihre js und html Dateien teilen können, würde helfen, zu wissen, was genau vor sich geht. – ggoyal

Verwandte Themen