2016-11-30 64 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後 - 如果它不工作,否則它正在工作 –