如何从指令插入部分?

时间:2015-10-28 17:46:29

标签: angularjs angularjs-directive

我有一个自定义指令,如下所示。在其中我想从部分插入html:

.directive('myDirective', function($parse){ 
return { 
  restrict: 'A', 
  scope: { foo: '=' }, 
  link: function(scope, element, attrs){ 
    //add children to element[0] using html from partials/content.html
    //...
  }
});

Google / Stack并没有透露太多,有没有办法做到这一点,还是我不打算以这种方式使用指令?

1 个答案:

答案 0 :(得分:1)

你可以做三件事

  1. 您可以将$templateRequest设为html页面,该页面在内部制作ajax以获取html&然后将该html放在$templateCache
  2. <强>代码

    $templateRequest('mypath.html').then(function(res){
       //inside you could have html content in res.data;
       var html = res.data;
    })
    
    1. 您可以将html内容放在$templateCache服务内的运行块&amp;然后在需要时使用$templateCache.get('templateName')
    2. 使用它

      <强>代码

      app.run(function($templateCache){
          $templateCache.put('mytemplate.html', '<div>My HTML</div>')
      })
      
      //inside directive do below thing
      var html = $templateCache.get('mytemplate.html');
      
      1. 将html内容放在脚本块中,该脚本块将包含type="text/ng-template",这将再次强制此模板放入$templateCache服务。这个模板会让你立即可用。
      2. <强>标记

        <script type="text/ng-template">
            <div>My Content<div>
        </script>
        
        //inside directive you need to access it from $templateCache.
        var html = $templateCache.get('mytemplate.html');