【问题标题】:ng-click not working on li when used in ng-repeat在 ng-repeat 中使用时,ng-click 对 li 不起作用
【发布时间】:2015-10-15 15:37:16
【问题描述】:

我正在像这样在 ng-repeat 中使用 li

   <ul class="pagination">
                        <li ng-repeat="page in vm.totalPages" ng-click="vm.statechange(page); $event.stopPropagation()"><span>{{page}}</span></li>
                    </ul>

由于某种原因,点击不起作用。有什么建议吗?

更新的 js 代码

        vm.stateChange = function (page) {
        $event.stopPropagation();
        var storeCommandGet = storeCommandResource.get({ $skip: page + "0", $top: $scope.countPerPage, $orderby: "Serial" });
        storeCommandGet.$promise.then(function (response) {
            $scope.data = response.value;
            $scope.storeCommandsTableParams.reload();
        });

    };

更新提琴手添加

我尝试在这里重现问题

http://jsfiddle.net/qqy90w1f/

【问题讨论】:

  • 请添加相关完整代码,HTML,JS
  • 提供完整的代码,至少是控制器
  • 我很困惑。什么是虚拟机?你的控制器的一个实例?我习惯于看到附加在 $scope 上的这些东西。我无法在jsfiddle.net/2mrxn7oc/3 重现该问题,您能否修改此小提琴以产生您的问题?
  • vm 是一个控制器,就像
    中的 sytanx
  • 我在这里尝试更新jsfiddle.net/dmsp0yks

标签: javascript jquery html angularjs angularjs-ng-repeat


【解决方案1】:

我认为您不能在 ng-click 中执行 $event.stopPropagation()。你应该把它移到vm.statechange()

【讨论】:

  • 我试过了,但问题是 ng-click 没有触发。所以它不会到达 vm.statechange()
【解决方案2】:

问题是错别字

在 html 中我正在使用 statechange 但是函数名称是 stateChange

休息工作正常。

【讨论】:

    【解决方案3】:

    您没有将 ng-click 方法与 $scope 绑定。看这段代码:

    在 HTML 中:

    <li ng-repeat="page in vm.pages" ng-click="logout(page); $event.stopPropagation()"><span>Click me to change page to page  {{page}}</span></li>
    

    在 AngularJS 中

    $scope.logout = function(number) {
    
        console.log('page change to', number);
        vm.pageData = 'pumpkin ' + number;
    }
    

    see this link

    【讨论】:

    • 它是一个控制器作为语法。没有问题。这是一个错字。我回答了我的问题。
    • 你的意思是你不想在 ng-click 上做任何工作。类似条件
    • 真的没什么。只是从 vm.statechange 更改为 vm.stateChange 对我有用。我还取出了传播停止事件。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签