国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

angulaire.js - Les instructions angulaires encapsulent les plug-ins tiers, comment implémenter le chargement à la demande de js tiers
天蓬老師
天蓬老師 2017-05-15 17:02:42
0
1
683
  • L'exigence est de charger le fichier js lié ??au plug-in lors de l'appel d'une directive qui encapsule le plug-in tiers, afin d'obtenir un chargement à la demande, mais sans requireJS .

  • Mon idée initiale est d'utiliser directive pour charger dynamiquement les fichiers link associés dans la fonction jquery de js, mais de cette fa?on, je ne sais pas quand le chargement du fichier est terminé.

  • Le code pertinent est le suivant (en prenant l'emballage select2 comme exemple)

    <p ng-app="app" ng-controller="FooController as vm">
      <select my-select2 ng-model="vm.selector">
        <option value="aaaa">aaaaa</option>
        <option value="bbbb">bbbbb</option>
        <option value="cccc">ccccc</option>
      </select>
      <p ng-bind="vm.selector"></p>
    </p>
    var app = angular.module('app', []);
    app.controller('FooController', function() {
      var vm = this;
    });
    
    //自定義指令,簡(jiǎn)單封裝select2, 這里只是以select2為例
    app.directive('mySelect2', function($timeout) {
      return {
        link: function(scope, ele, attr) {
         
          //目前的想法是在這兒用jq動(dòng)態(tài)加入script標(biāo)簽導(dǎo)入select2源文件
          //但是文件是異步加載的,無(wú)法知道什么時(shí)候加載完
          $('body').append('<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></sc'+'ript>');
          
          //現(xiàn)在用timeout等select2加載好,模擬出應(yīng)該實(shí)現(xiàn)的效果    **求各位給個(gè)正確的方案**
          $timeout(function() {
            $(ele).select2();    //主要為了元素可以調(diào)用這個(gè)方法,這是select2插件的初始化方法
          }, 3000);
        }
      };
    });
  • lien codepen

Comment implémenter le chargement partiel à la demande dans

angularJS??


Eh bien, la réponse est ocLazyLoad. Ce qui suit fait partie du code modifié.
ps?: Le principe est d'utiliser ajax pour demander le fichier js cible de manière asynchrone, puis de mettre le texte demandé dans la balise de script dans le fichier js cible. fonction de rappel. Rejoindre le dom et ensuite passer des appels liés au plug-in??

app.directive('mySelect2', function($timeout, $ocLazyLoad) {
  return {
    link: function(scope, ele, attr) {
      ele.hide();
      $ocLazyLoad.load(['https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js',
       'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css'])
       .then(function() {
            $(ele).select2(); 
        }); 
    }
  };
});
天蓬老師
天蓬老師

歡迎選擇我的課程,讓我們一起見(jiàn)證您的進(jìn)步~~

répondre à tous(1)
為情所困

Recommander ocLazyLoad, documentation chinoise, documentation anglaise.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal