如何将表单输入数据从数据列表传递到我的角度控制器
How do I pass form input data from a datalist to my angular controller?
我正在做一个查找汇率的小型宠物项目,我在将输入传递到角度控制器时遇到问题。假设我有一个数据列表输入,在您键入时显示所选国家/地区:
<label for="ajax">From</label>
<input type="text" id="ajax" list="json-datalist">
<datalist id="json-datalist"></datalist>
这些项目是使用 JavaScript 填充的:
// 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();
currency.json 文件如下所示。
我向用户显示国家/地区名称,并尝试将国家/地区代码传递给角度控制器,以便它可以找到该国家/地区的正确汇率并显示它。
现在我的角度控制器看起来像这样:
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;
});
}]);
默认情况下,"fromCode"设置为美元,并且应该随着数据列表项的更改而更新。我希望 angular 每次在输入表单中更改数据列表选择时都执行新的查找。我该如何实现此目的?
您不应该将任何内容从您的视图传递到您的控制器。 您的所有数据都应来自您的控制器。 你在 html 页面上拥有的所有 javascript 都应该在你的控制器中。
完成此操作后,您可以使用ng-repeat和ng-model将视图绑定到控制器,数据将在控制器中自动更新。
相关文章:
- 如何将JSON数据导入我的ejs模板
- 无法将数据从firebase获取到我的html页面
- 用我的json数据填充JQuery DataTable
- 在php和mysql中选择选项.一旦选择了选项,就列出我的sql数据库数据
- ajax请求成功,但可以'我看不到我的数据
- 如何检查Json文件更新,如果更新了,则用更新的数据刷新我的页面
- 更新数据,而不是用javascript和jquery将其添加到我的表中
- 无法在我的JSON文件中发布数据
- 我尝试使用我的本地js文件来获取远程IP数据,但它不起作用
- 我的地图数据's不会使用php存储在mysql数据库中
- 如何使用XMLHttpRequest()不断地将数据发送到我的网站中的另一个页面
- 我没有'我不知道为什么我的jqGrid子网格没有'不要给我看数据
- 将用户选择的数据临时存储在我的阵列中
- 用我的函数jquery给出数据/参数
- JQuery$.ajax()发布数据以调用我的控制器中的方法
- 我的复选框没有't使用的循环来显示数据
- 在我的案例中,如何获取异步数据
- 如何在 D3 中更新我的多折线图数据
- “玩转这些数据!”我的plot.js图没有显示
- jQuery不是从JSON中提取数据并添加数据-我的代码有什么问题?