2016-11-30 58 views
-1

我有一个Opentoke库的指令,但它不工作,当我使用ng-if时,使用ng-if的原因是IOS设备不支持webrtc,因此它在DOM加载后显示警报。ng-if阻止指令方法

<div class="opentok" ng-if="!isMobileView"> 
    <open-tok-archive></open-tok-archive> 
</div> 

<a href="javascript:void();" ng-click="myMethod()">click me</a> 

<div class="opentok" ng-if="!isMobileView"> 
    <open-toke-screen-share></open-toke-screen-share> 
</div> 

没有ng-if每件事情都正常工作。

Direcitve

'use strict'; 
var session, apiKey, publisher, openTokToken, archiveID; 

angular.module('app') 
    .directive('openTokArchiv', [function() { 
    return { 
     restrict: 'EA', 
     templateUrl: 'views/pages/openTokArchive.html', 
     controller: function (OpenTokService, OTSession, $window, $rootScope, $scope, $routeParams, $cookieStore) { 


     $scope.myMethod = function(){ 
       console.log("---------not-- working ---------") 
      } 
    }; 
    }]); 
+0

什么是不工作? – taguenizy

+0

请粘贴您的指令 –

+0

指令外部有一个链接,它调用ng之后不起作用的指令的方法if- –

回答

0

使用NG-显示/ NG隐藏而不是NG-IF。

编辑

<div class="opentok" ng-if="!isMobileView"> 
    <open-tok-archive></open-tok-archive> 
    </div> 

看一看这个plunker Demo link

试试这个没有NG-如果#working

<!DOCTYPE html> 
<html> 

    <head> 
    <script data-require="[email protected]" data-semver="1.5.8" src="https://opensource.keycdn.com/angularjs/1.5.8/angular.min.js"></script> 
    <link rel="stylesheet" href="style.css" /> 
    <script src="script.js"></script> 
    </head> 

    <body ng-app="app" ng-controller="myCtrl" ng-init="variables"> 
     <div class="opentok"> 
     <open-tok-archive></open-tok-archive> 
     </div> 

     <button type="button" ng-click="myMethod()">Toggle</button> 

    </body> 

</html> 

随着NG-如果它不工作

<body ng-app="app" ng-controller="myCtrl" ng-init="variables"> 
    <div class="opentok" ng-if="!isMobileView"> 
    <open-tok-archive></open-tok-archive> 
    </div> 

    <button type="button" ng-click="myMethod()">Toggle</button> 

</body> 

+0

我不想在HTML DOM上追加元素 –

+0

您可以在您要加载URL的地方发布JS代码吗? –

+0

我没有使用任何加载URL <这是一个简单的指令与一些$ scope方法,但在使用ng后 - 如果它不工作,否则它正在工作 –