我试图从另一个函数调用一个函数但是我收到一个错误:
2angular.js:9193 Error: [$interpolate:interr] http://errors.angularjs.org/1.2.3/$interpolate/interr?p0=%0A%20%20%20%20%0A…()%7D%7D%0A%0A%20%20&p1=TypeError%3A%20undefined%20is%20not%20a%20function
我在html文件中编写以下代码
<div ng-app="myApp">
<div ng-controller="SomeController">
{{ini()}}
<div id='bar' >
<div id='slider'>
</div>
</div>
我的控制器看起来像:
var myApp = angular.module("myApp", []);
myApp.controller("SomeController", function($scope) {
$scope.bar =document.getElementById('bar');
$scope.slider =document.getElementById('slider');
$scope.info = document.getElementById('info');
$scope.set_per="";
$scope.ini = function() {
$scope.bar.addEventListener('mousedown', $scope.startSlide(), false);
$scope.bar.addEventListener('mouseup', $scope.stopSlide(), false);
}
$scope.startslide=function(event){
$scope.set_perc = ((((event.clientX - $scope.bar.offsetLeft) / $scope.bar.offsetWidth)).toFixed(2));
info.innerHTML = 'start' + $scope.set_perc+ '%';
$scope.bar.addEventListener('mousemove', $scope.moveSlide(bar,slider,info), false);
$scope.slider.style.width = ($scope.set_perc * 100) + '%';
}
$scope.moveSlide=function(event){
$scope.set_perc = ((((event.clientX - $scope.bar.offsetLeft) / $scope.bar.offsetWidth)).toFixed(2));
$scope.info.innerHTML = 'moving : ' + $scope.set_perc + '%';
$scope.slider.style.width = ($scope.set_perc * 100) + '%';
}
$scope.stopSlide=function(event){
$scope.set_perc = ((((event.clientX - $scope.bar.offsetLeft) / $scope.bar.offsetWidth)).toFixed(2));
$scope.info.innerHTML = 'done : ' + $scope.set_perc + '%';
$scope.bar.removeEventListener('mousemove', $scope.moveSlide(bar,slider,info), false);
$scope.slider.style.width = ($scope.set_perc * 100) + '%';
}
});
答案 0 :(得分:1)
你有一个错字。
您在定义$scope.startSlide()
时尝试致电$scope.startslide
,请注意大写字母S.
此外,我强烈建议您阅读Patrick的评论,该评论指出了angularjs框架的几种滥用行为。