为什么我的ng-click无法正常工作

时间:2015-07-11 15:37:24

标签: javascript

我不确定为什么ng-click没有拿起这个功能。我尝试将我的'Next'函数分配给范围变量,但它仍然无效。

这是HTML(排除元素中的'App'位)

<div ng-controller="CarouselCtrl">
    <div>
        <img src="" class="carousel-arrow" ng-click="Next();">
        <h1>{{Index}}</h1>
    </div>
</div>

这是JavaScript

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

App.controller('CarouselCtrl', ['$scope', function($scope) {

    var Carousel = {};

    Carousel.Data = ['Slide 1', 'Slide 2', 'Slide 3', 'Slide 4', 'Slide 5']
    Carousel.Index = 0;

    Carousel.Next = function() {

        if (Carousel.Index >= Carousel.Data.length) {
            Carousel.Index = 0;

        } else {
            Carousel.Index++
        }
    }

        $scope.Index = Carousel.Data[Carousel.Index];
        $scope.Next = function(){
        Carousel.Next();
        console.log('clicked');
    }
}]);

1 个答案:

答案 0 :(得分:1)

$scope.Next = Carousel.Next();

更改为

$scope.Next = Carousel.Next;

通过执行$scope.Next = Carousel.Next();,范围Next不再是函数,而只是Carousel.Next()函数返回的值。所以你要做的就是像上面一样分配函数定义。

<强>更新

$scope.Next = function(){
        Carousel.Next();
        $scope.Index = Carousel.Data[Carousel.Index];
        console.log('clicked');
}