控制器中的变量更改未反映在UI上 - AngularJS

时间:2017-05-26 11:40:10

标签: angularjs

我正在通过调用函数来更改控制器中的变量。变量 isSameTaxonomyElements与UI中的元素绑定。但它正在UI上反映出来。

$scope.validateAddElementButton = function (name, label) {          
            for (var i = 0; i < $scope.elements.length; i++) {             
                if (name === $scope.elements[i].name || label === $scope.elements[i].label) {
                  $scope.isSameTaxonomyElements = true;      
                  break; 
                } else {
                  $scope.isSameTaxonomyElements = false;                
                }             
            }          
        }

这是我的用户界面。

 <div ng-show="isSameTaxonomyElements">
                <div class="col-lg-6 float-left" >
                  <p class="alert-message">No two elements should have same label or name.</p>
                </div>
              </div>

我也尝试过添加$ timeout,$ apply等,但仍无效。

2 个答案:

答案 0 :(得分:0)

基本上,JavaScript变量只占用最后一个赋值。因此,根据您的代码,在for循环中,如果满足条件,isSameTaxonomyElements将为true并且您的循环中断(即不再循环);或者isSameTaxonomyElements将是false,如果循环没有提前退出,则最终isSameTaxonomyElements将为false

并检查控制器名称,应用程序名称等基本内容。

答案 1 :(得分:0)

您的变量不在控制器范围内。添加新的html页面并添加新的控制器,然后创建一个新的路由。在添加的新控制器中测试您的功能。 第二:检查旧控制器中的范围ID。我认为你的HTML不在控制器范围内。