2012-07-25 79 views
1

我的代码在我的HTML文件角JS路由器和指令

<!doctype html> 
<html ng-app="slider"> 
<head> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js"></script> 
    <script type="text/javascript" ng:autobind src="http://code.angularjs.org/0.10.5/angular-0.10.5.min.js"></script> 
    <link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/themes/redmond/jquery-ui.css" rel="stylesheet" /> 
    <script src="app.js"></script> 
</head> 

<body> 
    <div jq:slider></div> 
    <input id="amount" /> 
    {{years}} 
</body>​ 
</html> 

而且我app.js这是

angular.module('slider',[]) 
.directive('jq:slider', function() { 
return function(elm) { 
    var currentScope = this; 
    elm.slider({ 
     range: true, 
     min: 0, 
     max: 500, 
     values: [ 75, 300 ], 
     slide: function(event, ui) { 
      $("#amount").val("$" + ui.values[ 0 ] + " - $" + ui.values[ 1 ]); 
      currentScope.years = ui.values[0];    
      currentScope.$apply(); 
     } 
    }); 
}; 
}); 

出于某种原因,当我运行这段代码,我得到以下错误:

Uncaught TypeError: Object # has no method 'module'

我试过这个代码,没有模块和外部文件,它的工作原理很好......任何线索?

回答

1

Err ...我认为elm.slider是未定义的....

+0

但它通过路由器通过否? – climboid 2012-07-25 21:31:45

+0

不,elm是angular.element的一个实例,试试$(elm [0])。slider ...我认为你应该更新到angular 1.0,0.10有点旧。如果我没有错,在1.0 angular.element使用jquery,如果它被加载。 – 2012-07-25 23:37:48

+0

是的,所以我更新到角1.0并重新实​​现了整个事情。这里是回购https://github.com/climboid/angular-slider。谢谢你的帮助! – climboid 2012-07-26 00:06:18