2016-06-26 12 views
1

ich habe einen Knopf, der eine Funktion auf NG-Klicken anruft, mein Problem ist: wie kann ich diesen Knopf unter Verwendung der Identifikation erhalten und das Klickenereignis auf meinem Angular anrufen Run-Funktion, das ist mein Code:wie man Knopf mit Identifikation erhält und sein Klickenereignis anruft - Angular

<button ng-click="myfunction()" id="myButton">Click !!</button> 


app.run(['$rootScope',function($rootScope) { 
// by default i want to click my button when the app is loaded 
}]); 

Hinweis: ich habe ein Problem mit "myfunction()", der Grund, warum ich will indirekt nennen.

danke im voraus.

+0

Was Sie wollen, wird nicht work.Generally Ihre HTML gewonnen; t existieren, wenn App geladen und 'run()' Block ausführt, wenn Sie mit Routing-oder Direktive-Vorlagen und die Dom wurde auch nicht kompiliert und keiner Controller wurde ausgeführt. Warum fixiere ich 'myfunction()' hier nicht? – charlietfl

+0

IMHO, Simulation von Benutzerinteraktion, um eine Funktion automatisch auszulösen ist eine schlechte Idee. Dies führt oft zu nachfolgenden Problemen. Wenn Sie mehr ausarbeiten könnten, was hält Sie davon ab, 'myfunction()' direkt zu nennen, könnte dies uns vielleicht helfen, eine sauberere Alternative vorzuschlagen? Die Verwendung des 'ngInit'-Attributs, wie es @ avim101 vorgeschlagen hat, könnte eine Lösung sein - obwohl es nicht während des App-Starts passiert. –

+0

Hallo Leute, um euch zu erklären, was mein Problem ist, benutze ich dieses Tree-Grid: http://khan4019.github.io/tree-grid-directive/test/treeGrid.html, wenn die Seite geladen ist Elemente im Grid werden erweitert. Wenn ich sie also ausblenden möchte, sollte ich auf die Schaltfläche klicken, um mein Problem zu beheben. Ich versuche, die Minimierungsfunktion aufzurufen, ohne auf die Schaltfläche zu klicken. Haben Sie Vorschläge, das Problem zu beheben? Vielen Dank im Voraus – James

Antwort

1

können Sie ng-init

<button ng-click="myfunction()" id="myButton" ng-init="myfunction()">Click !!</button> 

aber wenn Sie wollen immer noch verwenden:

$timeout(function() { angular.element('#myButton').triggerHandler('click'); }); 
+0

danke @ Avim 101 für Ihren Vorschlag, ich löse mein Problem, mit diesem Code-Schnipsel: $ timeout (function() { eckigen.element ('# myButton'). TriggerHandler ('click'); }, 0); – James

+0

@ali froh, dass es geholfen hat – avim101

0

eine Funktion auszuführen, wenn ein Controller geladen wird einfach in der Steuerung aufrufen.

HTML

<div ng-controller="myController"> 
    <button ng-click="myFunction()" id="myButton">Click !!</button> 
</div> 

JS

app.controller("myController", function($scope) { 
    //Define function 
    $scope.myFunction = function (event) { 
     //Perform click function 
    }; 

    //Invoke function when controller loaded 
    $scope.myFunction(); 
}); 
+0

Kann $ scope.myFunction auch einer globalen Variablen zuweisen, so dass Sie es bei Bedarf schnell von der Konsole aus ausführen können ... 'window.test = $ scope.myFunction' – charlietfl

+0

danke @georgeawing für die Antwort, Mein Problem ist, ich benutze dieses Tree-Grid: http://khan4019.github.io/tree-grid-directive/test/treeGrid.html, wenn die Seite geladen wird, werden alle Elemente im Grid erweitert, so Wenn ich sie reduzieren möchte, sollte ich auf die Schaltfläche klicken, um mein Problem zu beheben, ich versuche, die Funktion zum Zusammenfalten aufzurufen, ohne auf die Schaltfläche klicken, haben Sie einen Vorschlag, dieses Problem zu beheben? Vielen Dank im Voraus – James

Verwandte Themen