繁体   English   中英

angularjs范围层次结构或为什么我看不到范围变量?

[英]angularjs scope hierarchy or why can't i see the a scope variable?

可能是一个棘手的问题,但尽管如此,我仍想了解其原因。

我有一个像这样的输入字段:

<div>
    <label class="col-xs-2" for="selectedJdeEsu">{{"JDE.jde_wizard.esu_name" | translate}}</label>
    <input ng-model="selectedEsu" type="text/>
    <div class = "btn wizard-next btn-primary" ng-click="addCurrent(selectedEsu)">
        <i class="fa fa-plus-circle" aria-hidden="true" ></i>
        add
    </div>
    <div ng-show="esuNameErr" style="color: red">
        {{esuNameErr}}
    </div>
</div>

和angularJS像这样:

    $scope.addCurrent = function(curr){
        var found = false;

        for(var i = 0 ; i < $scope.jdeEsus.length ; i++){
            if($scope.jdeEsus[i].esuName === $scope.selectedEsu){
                $scope.selectedEsuList.push($scope.jdeEsus[i]);
                $scope.selectedEsu = '';
                $scope.esuNameErr = null;
                found = true;
                break;
            }
        }

        if(found == false && $scope.selectedEsu){
            $scope.esuNameErr = $filter('translate')('JDE.jde_wizard.esu_name_err')
        }
    };

$scope.jdeEsus是一个对象数组。 现在我的问题是,虽然循环中的$scope.selectedEsu是未定义的,但curr获得了正确的值,即使它来自同一来源。

我想知道为什么吗?

这链接到范围继承(Javascript,AngularJS)

selectedEsu在链接到ng-if或其他Angular指令的范围内定义(此范围是Controller范围的子级),但父范围:Controller范围,不知道此字段。

您可以在“问题”中找到更多解释,例如: AngularJS中范围原型/原型继承的细微差别是什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM