Angularjs Angular ng show未在视图中显示图元

Angularjs Angular ng show未在视图中显示图元,angularjs,ng-show,Angularjs,Ng Show,我试图在我的代码中实现一个简单的角度显示,但我似乎无法使它工作。我附上下面的代码 HTML 现在问题来了: 控制台日志显示在控制台上,但两个div保持隐藏状态。我在这个网站上寻找了一个解决方案,并尝试了一些组合,认为我遗漏了一些细节,但我似乎可以让它工作 当您使用控制器时,synstax vm是您可以在作用域中引用的控制器的名称 如果您的代码在不同的闭包中运行,比如从控制器构造函数运行,那么您可能需要以不同的方式引用它 看起来这段代码是在控制器构造函数中调用的,所以“vm”不是在那里定义的变量。

我试图在我的代码中实现一个简单的角度显示,但我似乎无法使它工作。我附上下面的代码

HTML

现在问题来了:


控制台日志显示在控制台上,但两个div保持隐藏状态。我在这个网站上寻找了一个解决方案,并尝试了一些组合,认为我遗漏了一些细节,但我似乎可以让它工作

当您使用控制器时,synstax vm是您可以在作用域中引用的控制器的名称

如果您的代码在不同的闭包中运行,比如从控制器构造函数运行,那么您可能需要以不同的方式引用它

看起来这段代码是在控制器构造函数中调用的,所以“vm”不是在那里定义的变量。您应该使用“this”来代替:


如果您添加了
“使用严格”在js文件的顶部,您应该会得到一些警告。

您可以添加整个html吗?特别是在定义控制器/视图和ng应用程序部分的地方?如果将
{{{vm.showSliderChecker}}
添加到视图中,它是否显示正确的值?我看到您正在使用
vm
,您是否使用
controllerAs:vm
var vm=this“绑定”了控制器?让我来做@Juan也一样,我已经做了,daan.desmedt。。让我们编辑我的答案并在那里发布新的html。您是否使用控制器作为语法?情况似乎并非如此。尝试从表达式中删除“vm.”。我使用的是controllerAs语法,它是在我进行路由配置的地方定义的。我不认为删除它会改善我的代码。我已经在顶部使用了“use strict”,而不是从控制器构造函数调用它。事实上,我一直在使用John Papa风格的指导原则,这是一个包含大量模块的biiig项目,因此我不认为我能够向您展示所有内容,因为它太多了。您能使用像Batarang这样的插件,并向我们展示ng if元素的范围吗?
  <div ng-repeat="question in data.questions track by $index" ng-if="question.visible" class="slide">

  <md-radio-group ng-model="question.selectedAnswer" ng-if="vm.showSliderChecker">
    <md-radio-button ng-repeat="ans in question.answer track by $index" ng-value="ans._id"
                     ng-click="radioBtnClick({qId: question._id, ansId: ans._id})">{{::ans.description}}
    </md-radio-button>
  </md-radio-group>




  <div class="wrapper" ng-show="vm.showSliderChecker">
 <div class="toggle_radio">
<input type="radio" class="toggle_option" id="first_toggle" name="toggle_option" >

<label for="first_toggle" class="widthEighth" ng-repeat="ans in question.answer track by $index" ng-value="ans._id"
                     ng-click="radioBtnClick({qId: question._id, ansId: ans._id}); showSliderClickedMessage()"><p> {{$index+1}} </p></label>


  </div> 

</div>

</div>
function initController(){
   checkSliderForDisplay();
}

function checkSliderForDisplay() {
  if($stateParams.testType === "Stress_management"){
        vm.showSliderChecker = true;

        console.log("The value of slider checker is true and here's proof ----> ");
        console.log(vm.showSliderChecker);
      }
      else{
        vm.showSliderChecker = false;
        console.log("Alas, the slider checker is just a lot of false advertising and nothing more.");
        console.log(vm.showSliderChecker);
      }
}

initController();
function checkSliderForDisplay() {
  if(this.testType === "Stress_management"){
    this.showSliderChecker = true;

    console.log("The value of slider checker is true and here's proof ----> ");
    console.log(this.showSliderChecker);
  }
  else{
    this.showSliderChecker = false;
    console.log("Alas, the slider checker is just a lot of false advertising and nothing more.");
    console.log(this.showSliderChecker);
  }
}