如何从angularjs中的同一控制器中的另一个函数调用一个函数?

时间:2014-12-08 13:45:05

标签: css angularjs

我试图从另一个函数调用一个函数但是我收到一个错误:

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) + '%';
    }

});

1 个答案:

答案 0 :(得分:1)

你有一个错字。

您在定义$scope.startSlide()时尝试致电$scope.startslide,请注意大写字母S.

此外,我强烈建议您阅读Patrick的评论,该评论指出了angularjs框架的几种滥用行为。

相关问题