【问题标题】:Send HTML Content from an Angular Controller to Webpage将 HTML 内容从 Angular 控制器发送到网页
【发布时间】:2017-11-30 01:07:36
【问题描述】:

我有从here 构建的这个模板。我想让我的 Angular 控制器为侧边栏中的项目发送 html,例如仪表板、快捷方式、概述等。

有一些关于这个主题的帖子Send html content with variables to template from controller AngularJSAngularJS data bind in ng-bind-html?。但是,我似乎无法将这些问题/答案应用于我的问题。这是我正在使用的 html 代码的一部分,用于让角度控制器发送并显示。

 <li>
   <a>Admin Controls</a>
 </li>
 <li>
   <a href="#">Dashboard</a>
 </li>
 <li>
   <a href="#">Shortcuts</a>
 </li>
 <li>
   <a href="#">Overview</a>
 </li>

【问题讨论】:

  • 您可以编写自己的自定义指令,并在指令中提供需要显示在视图中的模板(在您的情况下为仪表板项目)的 URL。
  • 我不知道如何编写自己的指令。你能举个例子吗?
  • Rohan,你能看看我的回答吗

标签: javascript html angularjs directive angular-directive


【解决方案1】:

根据 Rahan Kawade 的指导,我得到了初步的有效答案。我使用 Angular 模板将 html 代码插入到视图中,并且它起作用了。需要注意的是,当使用模板通过 angular 指令插入 html 代码时,确保 html 代码没有回车很重要(参见选项 1)。如果是这样,该指令将不起作用。我确实提供了另一个选项来帮助提高 html 的清晰度和可读性,以防它变长并且选择使用模板而不是 templateUrl(请参阅选项 2)。这是解决方案。

controller.js

选项 1

var adminAppCtrls = angular.module("app", [])
.directive('adminDash', function() {
    return {
        template: '<li><a>Admin Controls</a> </li><li><a href="#"> Dashboard </a></li> <li><a href="#">Shortcuts</a></li> <li><a href="#">Overview</a></li>'
    };
})

选项 2

var adminAppCtrls = angular.module("app", [])
.directive('adminDash', function() {
    var href = '<li><a>Admin Controls</a>'
    href += '</li><li><a href="#"> Dashboard </a></li>'
    href += '<li><a href="#">Shortcuts</a></li>'
    href += '<li><a href="#">Overview</a></li>'

    return {
        template: href
    };
})

查看

<div ng-app="app">
<h2>Custom directive with external page</h2>
<div adminDash></div>
</div>

【讨论】:

  • 是的,这就是我的建议......它是否按您预期的方式工作?
  • 是的,效果很好。我很高兴在创建自定义模板方面达到这一里程碑。如果有人可以将答案标记为正确,这样其他人就知道这是一个可行的解决方案,那就太好了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-14
  • 2020-08-23
  • 2023-03-15
  • 1970-01-01
相关资源
最近更新 更多