anglejs – Angular JS:ng-click范围集在ng-if中不起作用

前端之家收集整理的这篇文章主要介绍了anglejs – Angular JS:ng-click范围集在ng-if中不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
今天,我看到一个角色的bug:

当您尝试直接在ng点击中设置范围值时,当您的点击是ng – 如果哪个测试具有相同的范围值 – >时,它不起作用. http://jsfiddle.net/9j2TL/26/

angular.module('test',[])
.controller('testCtrl',function($scope) {
    $scope.step = 1;

    $scope.setStep = function(step) {
         $scope.step = step;  
    };
});

<div ng-app="test">
<div ng-controller="testCtrl">
    <ul class="timeline">
        <li>
            <div class="block-submit">
                <button class="btn btn-primary btn-lg" ng-click="step = 2">Without ngif block</button>
            </div>
        </li>

        <li ng-if="step > 1">
            <div class="block-submit">
                <button class="btn btn-primary btn-lg" ng-click="step = 3">with ngif block</button>
            </div>
        </li>

        <li ng-if="step > 1">
            <div class="block-submit">
                <button class="btn btn-primary btn-lg" ng-click="setStep(3)">With ngif block and scope function</button>
            </div>
        </li>
    </ul>
    <p>
        step value : {{ step }}
    </p>
</div>
</div>

解决它,你应该创建一个范围函数

如果有人解释这个问题,我很乐意理解它!

谢谢 :)

我不认为这是一个错误.您只是在视图中自动创建属性和混乱的范围.

Updated Fiddler.

这样做有效:

<li ng-if="step > 1">
    <div class="block-submit">
        <button class="btn btn-primary btn-lg" ng-click="$parent.step = 3">with ngif block</button>
    </div>
</li>

这正在发生,因为ng-if的内部正在创建一个新的范围.

原文链接:https://www.f2er.com/angularjs/142711.html

猜你在找的Angularjs相关文章