2016-10-31 7 views
0

次の問題があります。角度指示とスコープ

私は私の見解で

<a class="btn btn-hero" confirmation-download-all 
ng-if="downloadPackageLink"><i class="fa fa-download" aria-hidden="true"></i> {{signDocumentDownloadAllButton}}</a> 

を次のコードを持っていると私はディレクティブ

function confirmationDownloadAll(deviceDetector) { 
    return { 
     restrict : 'A', 
     priority : 1, 
     terminal : true, 
     scope : { 
      signDocumentDownloadAllButton : '=', 
     }, 
     link : function (scope, element, attr) { 
      var clickAction = attr.ngClick; 
      element.bind('click', function (event) { 
       event.preventDefault(); 
       if (scope.deviceDetector.os == 'ios') { 
        var sweetOptions = { 
         title : scope.signDocumentDownloadAllNotificationTitleIOS, 
         text : scope.signDocumentDownloadAllNotificationMessageIOS, 
         type : "warning", 
         showCancelButton : false, 
         confirmButtonColor : "#DD6B55", 
         confirmButtonText : scope.signDocumentDownloadAllButton, 
         closeOnConfirm : true 
        }; 
        swal(sweetOptions, 
         function (isConfirm) { 
         if (isConfirm) { 
          var downloadall = document.getElementById('hidden_downloadall'); 
          downloadall.click(); 
          //if (sweetConfirmOption) swal(sweetConfirmOption); 
          //if (attrs.sweetOnConfirm) scope.$evalAsync(attrs.sweetOnConfirm); 
         } 
        }); 
       } else { 
        var downloadall = document.getElementById('hidden_downloadall'); 
        downloadall.click(); 
       } 
      }); 
     } 
    }; 
} 

を持っており、私の問題は、私の見解では、ボタンのテキスト示すではなく、{{signDocumentDownloadAllButton}}であるということです$scope. signDocumentDownloadAllButton

私は非常にシンプルでなければならないと信じていますが、私は欲求不満になり始めています。

+0

「scope.deviceDetector」はどこから取得していますか?あなたは 'scope'ブロックの一部としてそれを全くリストしません。 – Makoto

+0

私はあなたのコードをjsfiddle [ここ](https://jsfiddle.net/cLe9kxd4/16/)に置き、そこに多くのエラーがあります。 deviceDetectotrはサービスではありません。私はなぜscope.deviceDetectorとの関係が理解できませんでした。私はそれを取り除いたが、うまくいかなかった。あなたのコンソールに何かエラーがありますか? –

答えて

-1

ここに行って.......このコメントを試して、変更箇所を指定してください。

+0

ディレクティブでは、サービスを表す '$ scope'の代わりにスコープオブジェクトを表すのに' scope'を使うのが一般的です。また、このシナリオでは 'deviceDetector'を注入すると*何も*達成できないと私は確信していません。なぜなら、これがどこから来るのかは非常に不明です。 – Makoto

関連する問題