2014-09-25 72 views
0

我建立在角JS Web应用程序,当我尝试包括日期选择器它显示诸如错误“elem.datepicker是不是一个函数”在Angularjs应用程序中Datepicker错误?

我提到this link for the datepicker代码,有现场演示。下面

的是我的代码,这将注入angularjs应用程序的索引页面

HTML

<div id="wrapper" ng-app="myApp"> 
    <p>{{datePicker || "00/00/0000"}}</p> 
    <input type="text" ng-model="datePicker" datepicker /> 
</div> 

app.js

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

myApp.directive("datepicker", function() { 
    return { 
    restrict: "A", 
    require: "ngModel", 
    link: function (scope, elem, attrs, ngModelCtrl) { 
     var updateModel = function (dateText) { 
     scope.$apply(function() { 
      ngModelCtrl.$setViewValue(dateText); 
     }); 
     }; 
     var options = { 
     dateFormat: "dd/mm/yy", 
     onSelect: function (dateText) { 
      updateModel(dateText); 
     } 
     }; 
     elem.datepicker(options); 
    } 
    } 
}); 

我试过很多解决这一点,但我不能“T。

+0

尝试使用[angular-bootstrap-ui]提供的datepicker(http://angular-ui.github.io/bootstrap/)? – dddd1919 2014-09-25 13:32:49

+0

你可以为这个问题做一个plunkr吗?我无法想象你的'elem'如何在不注入第三方库的情况下具有日期选择器功能。 – 2014-09-25 13:34:28

+1

你的页面中是否包含jquery.js和datepicker.js? – Josep 2014-09-25 13:39:09

回答

1

在我的电脑您的代码工作正常,我想你忘记导入js文件,

添加的角度引导,jQuery的,引导

-ui-引导-TPLS-0.5.0.js - jquery-1.7.2.min.js -bootstrap-combined.min.css

+0

对于已经在评论中已经回答的内容做出回答的工作非常好,非常蹩脚! – Josep 2014-09-25 13:51:02

+0

@Furkan你可以请列出需要包含的js文件 – sathishkumar 2014-09-25 14:10:39

0

您的HTML应该看起来像这样与下面的库工作。

<!DOCTYPE html> 
<head> 
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/themes/smoothness/jquery-ui.css"/> 
<script src="http://code.jquery.com/jquery-1.10.2.js"></script> 
</head> 
<div id="wrapper" ng-app="myApp"> 
    <p>{{datePicker || "00/00/0000"}}</p> 
    <input type="text" ng-model="datePicker" datepicker /> 
</div> 
</html> 
<script src="http://code.jquery.com/ui/1.11.1/jquery-ui.js"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script> 
<script src="myApp.js"></script> 
-1

包括JQuery的前角,然后ELEM已经是一个jQuery对象,然后你可以使用它,而$()

我有同样的问题。我第一次固定它在$()包装ELEM:

$(elem).datepicker(options); 

但要解决这个问题的正确方法是包含在正确的顺序库。