2016-11-01 5 views
0

In Internet Explorer, Eingabe Typ = "Datum" funktioniert nicht und Winkelanweisung wird angezeigt, um jqueryUI datetimepicker anzuzeigen.Entfernen von Direktive aus Dom mit JQuery

Aber, in Chrom, werden beide angezeigt, gibt es eine Möglichkeit, die Direktive aus dem Element mit jQuery zu entfernen, so dass, wenn es den Eingabe-Typ Datum erlaubt, die einzige HTML5 Datetime genommen wird?

html:

<input id="date1" type="date" ng-model="date" jqdatepicker/> 
<br/> 
{{ date }} 

javascript:

var datePicker = angular.module('app', []); 

datePicker.directive('jqdatepicker', function() { 
    return { 
     restrict: 'A', 
     require: 'ngModel', 
     link: function (scope, element, attrs, ngModelCtrl) { 
      element.datepicker({ 
       dateFormat: 'mm/dd/yy', 
       onSelect: function (date) { 
        scope.date = date; 
        scope.$apply(); 
       } 
      }); 
     } 
    }; 
}); 

$(document).ready(function(){ 

$('#date1').removeAttr('jqdatepicker'); 
if ($('#date1')[0].type != 'date') { 

} 
}); 

http://jsfiddle.net/TAeNF/1420/

+1

Verwenden Sie jQuery nicht, um eine eckige Anweisung zu entfernen .... Verwenden Sie angular, um festzustellen, ob die Richtlinie angewendet werden sollte/sollte. –

+0

Wenn wir durch jQuery entfernen möchten, was ist der Code? oder wir können nicht? –

+0

Nein. Es ist möglich. Es ist einfach nicht der "eckige Weg". Du vermischst eckige und jQuery, und du kannst das rein mit eckigen tun. –

Antwort

0

Ich löste dies bedingt aus der Richtlinie Rückkehr

http://jsfiddle.net/TAeNF/1421/

if ($('#date1')[0].type != 'date') { 
    return { 
     restrict: 'A', 
     require: 'ngModel', 
     link: function (scope, element, attrs, ngModelCtrl) { 
      element.datepicker({ 
       dateFormat: 'mm/dd/yy', 
       onSelect: function (date) { 
        scope.date = date; 
        scope.$apply(); 
       } 
      }); 
     } 
    }; 
    } 
    else 
    return null; 
}); 
Verwandte Themen