0

Ich suche, wie eine Funktion von einem Controller mit Parametern in Textfeld aufgerufen wird. Das ist mein HTML-Code:Daten laden, wenn Sie auf die Schaltfläche klicken

d3DemoApp.controller('controllerName',function($rootScope,$scope) { 
    $scope.modelName = ''; 
    $scope.functionName = function() { 
     myFunction($scope.modelName); 
    }; 
}); 

Und app.js:

<!DOCTYPE html> 
<html> 

    <head> 
    <link rel="stylesheet" href="style.css"> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script> 
    <script src="controllerInput.js"></script> 
    <script src="app.js"></script> 
    </head> 

    <body ng-app="appName"> 
    <input type="text" id="idName" name="idName" ng-model="modelName" ng-controller="controllerName"> 
    <button class="btn btn-default" ng-click="functionName()">Execute</button> 
    </body> 

</html> 

Dies ist der Regler

function myFunction(concatURL){ 
    //loadData('URL' + concatURL); 
    console.log("Function successfully called !"); 
} 

Das Problem in meiner App-Datei ist, habe ich eine Funktion loadData, die Aufruf sein muss, aber es ist in einem Controller namens ControllerApp und meine Funktion myFunction ist nicht bekannt, ob es in ControllerApp ist. Hoffe, du wirst mir helfen, vielen Dank.

+1

Warum nicht einen Service für Ihre Funktion, die Sie erstellen und von der Steuerung nennen? – DevTrong

+0

Haben Sie Ihre Konsole überprüft? Es gibt JavaScript-Fehler 'Uncaught ReferenceError: d3DemoApp ist nicht definiert' – Jamiec

+0

@Jamiec, ja ich dachte, das zu tun, aber der Code, der ausgeführt werden muss, ist in app.js. – Anonyme

Antwort

0

auf JS-Datei (Controller) fügen Sie diese auf dem Kopf

var d3DemoApp = angular.module('D3demoApp', []); 

auf HTML-Datei, versuchen Sie den Controller in einem div

<body ng-app="D3demoApp"> 
    <div ng-controller="controllerFilterSearch"> 
    <input type="text" id="searchTextBox" name="searchTextBox" ng-model="searchText"> 
    <button class="btn btn-default" ng-click="getSearchText()">Rechercher</button> 
    </div> 
</body> 
+0

Danke für Ihre Antwort, aber es löst nicht das Problem. – Anonyme

+0

Was ist der Fehler? Ich bearbeite live auf deinem Plunkr, es funktioniert. – mtamma

+0

Danke für Ihre Antwort, ich habe meine Frage bearbeitet, weil sie mein Problem nicht löst. Danke vielmals ! – Anonyme

1

Sie gemacht haben zwei Fehler im Code zu wickeln

  1. Sie haben das Modul appName nicht deklariert, bevor Sie es verwenden.
  2. Sie haben die ng-controller nur auf das Eingabeelement angewendet, nicht auf das Element, das die Eingabe und die Schaltfläche enthält.

das beheben zuerst müssen Sie diese Zeile, bevor Sie versuchen, das Modul zu verwenden:

var variableName = angular.module("appName",[]); 

die zweite zu beheben, verschieben Sie den ng-controller Element nach oben:

<body ng-app="appName" ng-controller="controllerName"> 
    <input type="text" id="idName" name="idName" ng-model="modelName"> 
    <button class="btn btn-default" ng-click="functionName()">Execute</button> 
</body> 

+0

Danke für Ihre Antwort, ich habe meine Frage bearbeitet, weil sie mein Problem nicht löst. Danke vielmals ! – Anonyme

+0

@ afeffifari-1957 müssen Sie gehen und lesen Sie die Angular Docs. Dies funktioniert durch Dependency-Injection, wobei ein Controller sich auf einen Service verlassen kann und dieser Service sich auf andere injizierte Services verlassen kann. Dies ist alles durch die Dokumente abgedeckt und zu weit gefasst, um hier zu antworten. – Jamiec

0

ich Ihren Code bearbeitet haben, gehen pls durch diese

<body ng-app="mainApp" > 
    <div ng-controller="controllerFilterSearch"> 
     <input type="text" id="searchTextBox" name="searchTextBox" ng-model="searchText" > 
     <button class="btn btn-default" ng-click="getSearchText()">Rechercher</button> 
    </div> 
</body> 

JS

var d3DemoApp = angular.module("mainApp", []); 

d3DemoApp.controller('controllerFilterSearch',function($rootScope,$scope) { 
    $scope.searchText = ''; 
    $scope.getSearchText = function() { 
     alert(); 
     myFunction($scope.searchText); 
    }; 
}); 
+0

Danke für Ihre Antwort, ich habe meine Frage bearbeitet, weil sie mein Problem nicht löst. Danke vielmals ! – Anonyme

Verwandte Themen