0

我在 angularJs 项目中使用 emojionearea。当我使用我的自定义指令将 unicode 解析为表情符号笑脸时,它给了我错误 Refrence Error 。emojione 未定义。这是指令

app.directive('emojifyIt', emojifyIt);

function emojifyIt($timeout) {
  console.log('directove bya sad')
  return {
    link : function(scope, element, attributes){
      console.log(attributes['emojifyIt']);
      element.html(emojione.unicodeToImage(attributes['emojifyIt']));
    }
  };
}

如果我在此使用 $timeout 函数,它可以正常工作。例如

app.directive('emojifyIt', emojifyIt);

function emojifyIt($timeout) {
  console.log('directove bya sad')
  return {
    link : function(scope, element, attributes){
      console.log(attributes['emojifyIt'])
      $timeout(function() {         
        element.html(emojione.unicodeToImage(attributes['emojifyIt']))
      }, 1000);    
    }
  };
}

有没有解决方案,所以我不使用超时功能它应该在渲染指令之前加载脚本和javascript代码

我的html代码是

 <span emojify-it="asd"></span> 

这是完整的html文件编辑

  <html>
  <head>
  <link rel="stylesheet" href="components/emojionearea/dist/emojionearea.min.css">
 <script src="components/jquery/dist/jquery.js"></script>
 <script src="components/emojionearea/dist/emojionearea.min.js"></script>
 <title>
 emoji example 
 </title>
 <style> .ng-cloak { display: none !important; } </style>
 </head>
<body ng-app="emojiApp" ng-controller="mainCtrl">

    <span   emojify-it="asd"></span> 



 <script src="components/angular/angular.js"></script>
 <script src="components/angular-sanitize/angular-sanitize.js"></script>
 <script type="text/javascript" src="script.js"></script>
</body>
<script>

 $(function(){
    $("#emojionearea2").emojioneArea({
pickerPosition: "bottom",
tonesStyle: "radio"
 });
  })
 </script>

想要这个没有超时的结果 检查这个

小提琴链接是 小提琴链接

4

0 回答 0