Javascript 如何将表单输入数据从数据列表传递到角度控制器?

Javascript 如何将表单输入数据从数据列表传递到角度控制器?,javascript,angularjs,html,Javascript,Angularjs,Html,我在一个小型宠物项目中工作,该项目可以找到汇率,但我在将输入传递到角度控制器时遇到了问题。 假设我有一个数据列表输入,在您键入时显示选择的国家: <label for="ajax">From</label> <input type="text" id="ajax" list="json-datalist"> <datalist id="json-datalist"></datalist> 默认情况下,“fromCode”设置为USD,

我在一个小型宠物项目中工作,该项目可以找到汇率,但我在将输入传递到角度控制器时遇到了问题。 假设我有一个数据列表输入,在您键入时显示选择的国家:

<label for="ajax">From</label>
<input type="text" id="ajax" list="json-datalist">
<datalist id="json-datalist"></datalist>

默认情况下,“fromCode”设置为USD,并且应该随着datalist项的更改而更新。每次更改输入表单中的数据列表选择时,我都希望执行新的查找。如何完成此操作?

您不应该将任何内容从视图传递到控制器。您的所有数据都应来自控制器。html页面上的所有javascript都应该在控制器中

完成此操作后,您可以使用ng repeat和ng model将视图绑定到控制器,并且数据将在控制器中自动更新。

请阅读。关键是要使用。
// Get the <datalist> and <input> elements.
var dataList = document.getElementById('json-datalist');
var input = document.getElementById('ajax');

var fromCode = 'USD';
// Create a new XMLHttpRequest.
var request = new XMLHttpRequest();

// Handle state changes for the request.
request.onreadystatechange = function(response) {
if (request.readyState === 4) {
    if (request.status === 200) {
        // Parse the JSON
        var jsonOptions = JSON.parse(request.responseText);

        // Loop over the JSON array.
        jsonOptions.forEach(function(item) {
            // Create a new <option> element.
            var option = document.createElement('option');

            // Set the value using the item in the JSON array.
            option.value = item.name;
            fromCode = item.code;
            // Add the <option> element to the <datalist>.
            console.log(option);

            dataList.appendChild(option);
        });

        // Update the placeholder text.
        input.placeholder = "e.g. United States Dollar - USD";
    } else {
        // An error occured :(
        input.placeholder = "Couldn't load currency options :(";
    }
}
};

// Update the placeholder text.
input.placeholder = "Loading currencies...";

// Set up and make the request.
request.open('GET', 'js/currencies.json', true);
request.send();
var myApp = angular.module("myApp", []);
myApp.controller("myController", ['$scope', '$http', function ($scope, $http) {

$scope.from = fromCode;
$http.get("https://api.fixer.io/latest?symbols=" + $scope.from)
    .then(function (response) {
        $scope.newRate = response.data;
    });

$http.get("https://api.fixer.io/latest?base=USD")
    .then(function (response) {
        $scope.currencies = response.data;
    });

}]);