当前位置: 首页 > 面试题库 >

以编程方式插入指令

黄弘盛
2023-03-14
问题内容

因此,我基本上希望能够触发一个事件,然后进行伪指令编译并将其自身插入DOM中的某个位置。目前我有这样的事情

//controller
  angular.module('app').controller('MainCtrl', function ($scope, $compile) {

    $scope.$on('insertItem',function(ev,attrs){
      var el = $compile( "<chart></chart>" )( $scope );
      $scope.insertHere = el;
    });

  });


// directive
 angular.module('app')
  .directive('chart', function () {
    return {
      template: '<div>My chart</div>',
      restrict: 'E',
      link: function postLink(scope, element, attrs) {
        element.text('this is a chart');
      }
    };
  });

我可以看到具有所有所需内容的“ el”对象,但无法将其插入到DOM中……有什么线索吗?


问题答案:

您必须先创建dom元素,然后对其进行编译并将其添加到文档中。像这样:

$scope.$on('insertItem',function(ev,attrs){
  var chart = angular.element(document.createElement('chart'));
  var el = $compile( chart )( $scope );

  //where do you want to place the new element?
  angular.element(document.body).append(chart);

  $scope.insertHere = el;
};

我在这里创建了一个简单的示例:http :
//plnkr.co/edit/n7SZpyeQ9nbjVSYA7ibB?p=preview



 类似资料:
  • 我需要在我的工作区中以编程方式导入一个. jar文件,就像我使用菜单时一样:< br> Import - 在这里,我找到了导入java项目的代码:< br > IProject描述描述 = ResourcesPlugin.getWorkspace().loadProject描述(新路径(“PROJECT_PATH/.项目”);( IProject project = ResourcesPlugin

  • 问题内容: 我想在Java中动态地做到这一点。我知道如何在单维数组中插入值。我对二维数组有些困惑。 问题答案:

  • 我已经创建了一个JSlider。我希望能够点击滑块上的任何地方,让拇指移动到鼠标的位置,并开始拖动(通常你必须点击拇指)。通过使用以下方法添加一个鼠标侦听器,我能够让拇指移动到鼠标位置: 问题是,一旦我按下鼠标按钮,然后移动它,拇指就会留在原地。是否有某种方法以编程方式启动拖动?

  • 问题内容: 如果我们有以下代码片段: 在终端中,输入请求如下所示 如何以编程方式模拟用户的输入。 问题答案: 这是一个示例,该示例如何使用函数来操纵的输入缓冲区,以从检索假输入 看到它正常工作 另一个选择(与JoachimPileborg在其评论恕我直言中所说的更接近)是将阅读代码放入单独的函数中,例如 这使您可以进行不同的测试和生产要求,例如

  • /home/hduser/bin/hadoop-2.9.0/share/hadoop/common/hadoop-common-2.9.0.jar/home/hduser/bin/hadoop-common-2.9.0/share/hadoop/common/hadoop-common-2.9.0-tests.jar/home/hduser/bin/hadoop-2.9.0/share/hadoo

  • 我有一个mp4文件,其中视频的背景颜色为纯色,如白色/绿色/蓝色。我想改变背景颜色。请让我知道如何改变颜色编程使用Android.