在ng-click AngularJS中使用JS多重表达式

时间:2014-02-26 04:05:39

标签: javascript angularjs

为什么这不起作用?

<a ng-click="if(item.lp_iframe=='') ? href='{{item.lp_url}}' :
             playVideo(item.lp_iframe_id)" target="_blank">

我怀疑我必须逃离'' ??

2 个答案:

答案 0 :(得分:2)

将其移动到范围内的函数,如此

$scope.foo = function() {
  // ...
}

ng-click="foo()"

根据doc

ng-click="expression" 

表达式并不意味着javascript,请参阅http://docs.angularjs.org/guide/expression

答案 1 :(得分:0)

你的问题是,你的表达看起来像是

<a>ng-click="href='url'"></a> //语法是否正确?不是

所以试试这个

<a ng-click="if(item.lp_iframe=='') ? redirect(item.lp_url) :
             playVideo(item.lp_iframe_id)" target="_blank">

   $scope.redirect= function(url) { 
      window.open(url)  
    }

,或者

试试这个

<a ng-click="clickevent()" target="_blank">

$scope.clickevent= function() {
  if(item.lp_iframe=='') 
       {   
        window.open(url)
       }
        playVideo(item.lp_iframe_id)
    }