2015-07-21 42 views
0

我有两个下拉列表,同时我们需要两个日历。谁能告诉我为什么我的日历不显示? 当我使用下拉列表代码我的日历停止工作。 输出我需要的是这样的: - (1)2天和5小时 (2)5天,并4小时 (3)8天,13小时 这里是我的代码:下拉选择与jlen日历中的日历冲突

<!DOCTYPE html> 
<html> 

    <head> 
     <script>document.write('<base href="' + document.location + '" />');</script> 

    <link rel="stylesheet" href="style.css" /> 
    <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap-combined.min.css" rel="stylesheet"> 
    <link rel="stylesheet" type="text/css" media="screen" href="http://tarruda.github.com/bootstrap-datetimepicker/assets/css/bootstrap-datetimepicker.min.css"> 
    <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.3/jquery.min.js"> 
    </script> 
    <script type="text/javascript" src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.2/js/bootstrap.min.js"> 
    </script> 
    <script type="text/javascript" src="http://tarruda.github.com/bootstrap-datetimepicker/assets/js/bootstrap-datetimepicker.min.js"> 
    </script> 
    <script data-require="[email protected]*" data-semver="1.4.0-beta.3" src="https://code.angularjs.org/1.4.0-beta.3/angular.js"></script> 
    <link rel="stylesheet" href="style.css" /> 
    <script src="script.js"></script> 

     <script data-require="[email protected]" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js" data-semver="1.0.8"></script> 


    <script src="app.js"></script> 


    </head> 

    <body><div ng-app="app" ng-controller="ctrl" ng-init="firstTime=endTime=a=selected_id1=selected_id2=input.param1=input.param2=''"> 
     <div ng-repeat='select in selects' ng-init="firstTime=endTime=a=selected_id1=selected_id2=select.param1=select.param2=''"> Start Date 
    <div id="date" class="input-append" datetimez ng-model="input.var1" > 
      <input data-format="MM-dd-yyyy" type="text" id="input1" name="input1" ></input> 
      <span class="add-on"> 
      <i data-time-icon="icon-time" data-date-icon="icon-calendar"></i> 
      </span> 
     </div> 



     <div id="date" class="input-append" datetimez ng-model="input.var2"> 
      <input data-format="MM-dd-yyyy" type="text" id="input1" name="input1" ></input> 
      <span class="add-on"> 
      <i data-time-icon="icon-time" data-date-icon="icon-calendar"></i> 
      </span> 
     </div> 
     <select 
     ng-model="select.selected_id1" 
     ng-options="o.id as o.name for o in options" 
     ng-change="selected_name1=(options|filter:{id:selected_id1})[0].name"> 
    </select> 
    <select 
     ng-model="select.selected_id2" 
     ng-options="o.id as o.name for o in options" 
     ng-change="selected_name2=(options|filter:{id:selected_id2})[0].name"> 
    </select> 



    <button type='button' ng-click='remove(select)'>Remove</button> 
    </div> 
    <div> 
    <button type='button' ng-click='add()'>Add</button> 
    <p>Time Difference:{{test()}}</p> 


    </div> 

    <script> 
    angular.module("app",[]) 
     .controller("ctrl",['$scope',function($scope){ 


     $scope.options = [ 
      {id:9, name:'09:00 AM'}, 
      {id:10, name:'10:00 AM'}, 
      {id:11, name:'11:00 AM'}, 
      {id:12, name:'12:00 PM'}, 
      {id:13, name:'13:00 AM'},  
      {id:14, name:'14:00 AM'}, 
      {id:15, name:'15:00 AM'}, 
      {id:16, name:'16:00 AM'}, 
      {id:17, name:'17:00 PM'}, 
      {id:18, name:'18:00 AM'}] 

      $scope.test = function() 
      { 
       var result=0,id2,a,b; 


      angular.forEach($scope.selects, function(value) { // loop over array to process all items 

      a = value.selected_id1; 
      b = value.selected_id2; 
      //alert(a); 
      //alert(b); 
      if((a!="") && (b!="")) 
      { 
       result +=(parseInt(b)-parseInt(a)); 
       //alert("result is:" + result); 


      } 
    }); 
      return result; 
      } 
      $scope.selects = [{}]; // default 1 sets 
    $scope.add = function() { 
    $scope.selects.push({}); 
    } 
    $scope.remove = function(item) { 
    angular.forEach($scope.selects, function(value, key) { 
     if (value == item) { 
     $scope.selects.splice(key, 1); 
     } 
    }); 
    } 


     }]); 
    app.directive('datetimez', function() { 
    return { 
     restrict: 'A', 
     require : 'ngModel', 
     link: function(scope, element, attrs, ngModelCtrl) { 
      element.datetimepicker({ 
      dateFormat:'dd-MM-yyyy', 
      language: 'en', 
      pickTime: false, 
      startDate: '01-11-2013',  // set a minimum date 
      endDate: '01-11-2030'   // set a maximum date 
      }).on('changeDate', function(e) { 
      ngModelCtrl.$setViewValue(e.date); 
      scope.$apply(); 
      }); 
     } 
    }; 
}); 

    </script> 
    </body> 

</html> 
+0

你有没有想过采用了棱角分明的UI引导:HTTPS ://angular-ui.github.io/bootstrap/ – artdias90

+0

稍有偏离主题:您正在使用两次'ng-init =“firstTime = endTime = a = selected_id1 = selected_id2 = input.param1 = input.param2 =''” '小心ng-init,在这里阅读有关https://docs.angularjs.org/api/ng/directive/ngInit –

+0

PS:最好使用Plunker而不是复制粘贴代码... –

回答

0

您在ng-init内的表达无效。 尝试类似这样的ng-init="a=b;c=d" etc ... - 与;分开的命令

另一个问题是在ng-init中的那些值来自哪里?你真的需要ng-init吗?

UPDATE

如果的值,B,C ...应该是零,那么就没有必要对它们进行初始化

+0

am使用ng-init =“a = b = c =''”;将a,b,c,d初始化为空ng模型。在未来的下一步,我将使用这些模型来保存和存储临时数据 – Nitish

+0

我需要的输出是这样的: - (1)2天和5小时 (2)5天和4小时 (3) 8天13小时 结果=(1)+(2)+(3); 13天24小时 – Nitish

+0

是的,我知道,我将在未来使用它们...此代码将提供更多逻辑 – Nitish