Javascript 根据下拉列表向URL添加数据,并使用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

我是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="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

}