为什么ng-show不起作用?

时间:2016-05-09 13:52:42

标签: javascript angularjs onclick angularjs-ng-click

HTML

<div  class="col-sm-1">
    <a class="a" ng-click="aa()">
       <span name="yesLink"></span>
    </a>            
</div>                                                  
<div  class="col-sm-1">
   <a class="a" ng-click="bb()">        
     <span  name="NoLink"></span>           
   </a>
</div>
<div id="nnn" class="col-sm-7" align="left" >
    <p ng-show="yes"> Text for yes</P>
    <p ng-show="no"> Text for no</P>
</div>

JS

yesLink.onclick()=function() 
{
      scope.yes=true;
}

noLink.onclick()=function() 
{
      scope.no=true;
}

我已经使用了上面的代码。我想根据点击显示消息。但它不起作用。这段代码有什么问题? 如果单击yesLink,则应显示“是的文本”,如果单击“无链接”,则应显示“文本为否”。

4 个答案:

答案 0 :(得分:2)

我认为,没有必要添加onclick方法。就这样做

<div  class="col-sm-1">
<a class="a" ng-click="yes=true">
   <span name="yesLink"></span>
</a>            
</div>                                                  
<div  class="col-sm-1">
   <a class="a" ng-click="yes=false;">        
      <span  name="NoLink"></span>           
    </a>
</div>
<div id="nnn" class="col-sm-7" align="left" >
    <p ng-show="yes"> Text for yes</P>
    <p ng-hide="yes"> Text for no</P>
</div>

答案 1 :(得分:2)

我看到Angular正在上面的代码中使用,所以HTML部分将是

你的控制器部分应该是

将bb()和aa()视为点击功能

$scope.bb = function(){
 $scope.yes = true;
}

$scope.aa = function(){
 $scope.no = true;
}

答案 2 :(得分:0)

您要检查的值是布尔值,但是您为变量赋值的值是一个字符串。您有两个选项&gt;

选项1: 告诉ng-hide / show值查找字符串值, ng-show =“yes ==='true'”。

方案2: 在你的函数中,换掉布尔值的字符串, scope.yes = true而非scope.yes =“true”

答案 3 :(得分:0)

不需要jquery,你可以使用ng-click,ng-click触发控制器中的函数

<div  class="col-sm-1">
    <a class="a" ng-click="aa()">
       <span name="yesLink"></span>
    </a>            
</div>                                                  
<div  class="col-sm-1">
   <a class="a" ng-click="bb()">        
     <span  name="NoLink"></span>           
   </a>
</div>
<div id="nnn" class="col-sm-7" align="left" >
    <p ng-show="yes"> Text for yes</P>
    <p ng-show="no"> Text for no</P>
</div>

JS

scope.aa() = function(){
   scope.yes = true;
}

scope.bb() = function(){
   scope.no = true;
}