javascript - 无法在 angularjs 中调用 $http
问题描述
我想通过 http 为 angularjs 中的下拉列表调用服务。但是,该函数不会执行 http 服务方法。
我通过 ajax 调用绑定下拉列表,在绑定 ajax 调用后,我想显示来自 ajax 调用的所选值的详细信息。
<script type="text/javascript">
var app = angular.module('myApp', [])
app.controller('myCtrl', function ($scope, $http, $window) {
$scope.DefaultLabel = "Loading.....";
var post = $http({
method: "POST",
url: "/PIRDetails/AjaxMethod",
dataType: 'json',
data: {},
headers: { "Content-Type": "application/json" }
});
post.success(function (data, status) {
$scope.DefaultLabel = "Please Select PIR Device";
$scope.Customers = data;
});
post.error(function (data, status) {
$window.alert(data.Message);
});
$scope.getPIRData = function (id) {
$http.get("/PIRDetails/GetPIRStatus/e203")
.then(function (response) {
$scope.myWelcome = response.data;
});
};
});
</script>
<div ng-app="myApp" ng-controller="myCtrl">
<select class="form-control" onchange="getPIRData(this.value);">
<option value="0" label="{{DefaultLabel}}"></option>
<option ng-repeat="customer in Customers" value="{{customer.Value}}">{{customer.Text}}</option>
</select>
</div>
解决方案
尝试ng-change
而不是onchange
<div ng-app="myApp" ng-controller="myCtrl">
<select class="form-control" ng-change="getPIRData(this.value);">
<option value="0" label="{{DefaultLabel}}"></option>
<option ng-repeat="customer in Customers" value="{{customer.Value}}">{{customer.Text}}</option>
</select>
</div>
演示代码在这里
推荐阅读
- ethereum - Solidity:检查是否在 bytes24 中设置了特定位
- node.js - 向房间发送消息的 SocketIO 无法正常工作
- android - 如何让我的 Android 应用符合“后台位置政策”
- python - Use requests to post captcha answer
- javascript - Daterangepicker Clear UI datepicker selected date
- javascript - localstorage only showing the last prompt input
- python - Slicing a for loop in Django
- visual-studio-code - how to list all switched folders in a SVN working copy
- excel - 如何将一行复制到多行?
- java - 如何在hibernate中实现并发