如果Angular js中的条件为true,则触发元素上的click事件

时间:2016-11-10 07:29:06

标签: javascript jquery html angularjs

我有一个Angular js view.html页面,我从控制器的$ scope方法传递一个名为 datadict 的字符串。
值{{datadict.days}}显示值几乎每天和{{datadict.days.includes('几乎每天')}}显示结果 true

这是我的代码:

 <div class="some_class">
  <ul class="ex1">
    <li><a ng-click ="datadict.days.includes('Not applicable')" class="mdcl-tab1">Not applicable</a> </li>
    <li><a ng-click ="datadict.days.includes('Several Days')" class="mdcl-tab1">Several Days</a> </li>
    <li><a ng-click ="datadict.days.includes('More than half the days')" class="mdcl-tab1">More than half the days</a> </li>
    <li><a ng-click ="datadict.days.includes('Nearly everyday')" class="mdcl-tab1">Nearly everyday</a> </li>
  </ul>
</div>

当点击一个元素时,该事件由该函数处理:

<script>
$(document).ready(function () {

    $(".mdcl-tab1").on('click',function(){

        $(this).addClass('tick');
        $('.ex1').attr('id', 'ex1');

    });

});

</script>

问题是我想触发上述条件为真的<a>元素上的点击事件,这就是为什么我添加了这个条件 ng-click =&#34; datadict .days.includes(&#39;几乎每天&#39;)&#34; 但我没有得到理想的结果。我做错了什么?

2 个答案:

答案 0 :(得分:3)

你可以这样做,

<script>
$(document).ready(function () {
$(".mdcl-tab1").on('click',function(){

    $(this).addClass('tick');
    $('.ex1').attr('id', 'ex1');

});

if($scope.datadict.days.includes('Nearly everyday')){
$(".mdcl-tab1").trigger("click");
}
});

并从锚标记

中删除ng-click属性
<a class="mdcl-tab1">

答案 1 :(得分:2)

我认为你可以做这样的事情

&#13;
&#13;
<li><a ng-click ="datadict.days == 'Nearly Everyday' && someFunction()" class="mdcl-tab1">Not applicable</a> </li>
&#13;
&#13;
&#13;

然后如果你点击它,someFunction()只会在datadict.days等于&#39;几乎每天&#39;

的情况下运行