Javascript 根据下拉列表向URL添加数据,并使用AngularJS重新加载页面
我是AngularJS新手,我使用一个引导下拉列表和一些其他参数来显示在Javascript 根据下拉列表向URL添加数据,并使用AngularJS重新加载页面,javascript,angularjs,html,twitter-bootstrap,Javascript,Angularjs,Html,Twitter Bootstrap,我是AngularJS新手,我使用一个引导下拉列表和一些其他参数来显示在HTML页面中,如下所示- <div id="centerdiv" class="container"> <div style="background-color:white;padding:20px;margin-top:20px;margin- bottom:20px"> <div class="row" ng-controller="DropDownCont
HTML
页面中,如下所示-
<div id="centerdiv" class="container">
<div style="background-color:white;padding:20px;margin-top:20px;margin- bottom:20px">
<div class="row" ng-controller="DropDownController"><center>
<div class="col-md-12" >
<h2>Productivity Report</h2>
<div ng-model="selectModel" class="dropdown">
<a class="btn btn-primary dropdown-toggle" type="button" id="dropdown1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> {{selectedItem}}
<span class="caret"></span></a>
<ul class="dropdown-menu" aria-labelledby="dropdown1" style="float: none;position: relative;height:auto;width: 25px;;text-align: center">
<li ng-repeat="a in report"><a ng-click="dropboxitemselected(a)" >{{a}}</a></li>
</ul>
</div>
</div></center>
</div>
<div class="row" ng-controller="open">
<center>
<div class="col-sm-4" >
<h1 id = "opentask">{{pending()}}</h1>
<span id = "openicon" class="glyphicon glyphicon-folder-open"></span>
<h2>Open</h2>
</div>
<div class="col-sm-4">
<canvas id="myChart" width="150" height="150"></canvas>
</div>
<div class="col-sm-4">
<h1 id = "closedtask" ng-controller="open">{{closetask}}</h1>
<span id = "closeicon" class="glyphicon glyphicon-folder-close"></span>
<h2>Closed</h2>
</div>
<h3 id = "newtask">{{urlDate()}}</h3>
</center>
</div>
</div>
urlAppend
变量将从函数urlDate()
获得的日期附加到$http
方法中的Basecamp API
如何将数字
1,2,3
传递给函数urlDate()
在从下拉列表中选择项以将urlpappend
变量附加到API中,从而在每次发生这种情况时重新加载页面,而不会丢失下拉选择的值时?selectModel
不是一个函数或定义的范围。您正在观看提供的控制器中不存在的内容。我在运行页面时似乎没有收到该错误。请注意,在示例中,watch表达式正在监视控制器中定义的某些内容。当该表达式更改时,将触发watch listener函数。尝试观看dropboxitemselected
app.controller('DropDownController', function ($scope, $route, $rootScope, sharedVar) {
$scope.selectedItem ='For This Month';
$scope.report = ['For This Month', 'Last Two Weeks', 'Last Week'];
$scope.dropboxitemselected = function (item) {
$scope.selectedItem = item;
}
$scope.$watch('selectModel', function(newValue) {
if (newValue == 'For This Month') {
sharedVar.setProperty(1);
}
if (newValue == 'Last Two Weeks') {
sharedVar.setProperty(2);
}
if (newValue == 'Last Week') {
sharedVar.setProperty(3);
}
});
});
app.service('sharedVar', function () {
var passPar = 1;
return {
getProperty: function () {
return passPar;
},
setProperty: function(value) {
passPar = value;
}
};
});
app.controller('open', function($rootScope, $scope, $http, $filter, sharedVar) {
var inPar = sharedVar.getProperty();
var urlAppend = urlDate(inPar);
function urlDate(inPar) {
var putDate = new Date();
if(inPar==1) return $filter('date')(putDate, 'yyyy-MM-01');
if(inPar==2) {
return $filter('date')(new Date(putDate.setDate(putDate.getDate()-14)), 'yyyy-MM-dd');
}
if(inPar==2) {
return $filter('date')(new Date(putDate.setDate(putDate.getDate()-7)), 'yyyy-MM-dd');
}
};
$http({method : 'GET', url : 'https://basecamp.com/2581583/api/v1/todos.json?due_since='+urlAppend, headers:{
'Access-Control-Allow-Origin': "*",
'Access-Control-Allow-Methods': 'GET',
'Access-Control-Allow-Headers': "Content-Type, Authorization, X-Requested-With"}})
.success(function(data)
{
//Code for processing the data
}