Javascript ng中的JS多表达式单击AngularJS

Javascript ng中的JS多表达式单击AngularJS,javascript,angularjs,Javascript,Angularjs,为什么这样不行 <a ng-click="if(item.lp_iframe=='') ? href='{{item.lp_url}}' : playVideo(item.lp_iframe_id)" target="_blank"> 我怀疑我必须跳出“?将其移动到范围内的函数,如下所示 $scope.foo = function() { // ... } ng-click="foo()" 据报道 表达式并不意味着javascript,请参见

为什么这样不行

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


我怀疑我必须跳出

将其移动到范围内的函数,如下所示

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

ng-click="foo()"
据报道


表达式并不意味着javascript,请参见

你的问题是,你的表情

//语法正确吗?不是

所以试试这个

<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)  
    }

$scope.redirect=函数(url){
打开窗口(url)
}
或者

试试这个

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

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

$scope.clickevent=function()
如果(item.lp_iframe=='')
{   
打开窗口(url)
}
播放视频(item.lp\u iframe\u id)
}

您在控制台中得到的错误声明是什么?@user3346088为什么playVideo会导致问题?像playVideo(…)或$scope一样调用它。playVideo(…)。$位置未定义您需要在控制器对象中分配$位置#没有“重新加载”的方法。这很有意义,但我将它命名为erorr,重新加载做什么?然后返回true?抱歉,将其更改为$route.reload();
<a ng-click="clickevent()" target="_blank">

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