Angular bootstrap选项卡 - 使用新的html刷新选项卡

时间:2014-06-26 12:08:18

标签: angularjs angular-ui-bootstrap

我正在使用角度bootstrap ui的标签。我已经覆盖了tabs指令,以便执行延迟加载数据的Plunkr链接:http://plnkr.co/edit/VABthzUwp50QpS16Gwuy?p=preview

延迟加载完全正常。我有一个要求,在选项卡中,点击按钮时应该重新加载不同的html。

对于前者,我说有一个标签,可以呈现tab1.htm。这个tab1.htm有一个单击该按钮的按钮我想在同一个标​​签中呈现不同的html。

我尝试更改tab1的div的template-url,但是我无法使用新网址重新加载当前标签

2 个答案:

答案 0 :(得分:0)

您的Plunkr使用强烈过时的Angular版本,该版本不支持与$sce一起使用的新ng-bind-html服务

此外,CSS还有一些我不会解决的严重问题,所以我会指出你正确的方向。

在这个答案(How can I make my HTML model data display in a <textarea> as it would in a browser?)中,您可以找到如何使用现代AngularJS版本(1.2.0或更高版本)将HTML“注入”页面。

Working Plunker:http://plnkr.co/edit/ld4Nte2KKIbgMkIWnRcP

如果你真的想坚持使用1.0.8,你将不得不使用ng-bind-html-unsafe,这非常简单:

<div ng-bind-html-unsafe="{{html_code}}"></div>

在某些控制器中:

$scope.html_code = "<h1>Some fancy HTML code</h1>"

答案 1 :(得分:0)

听起来你想要其中一个标签的选项来显示“条件数据”。

有一种非常简单的方法可以使用ng-view +模板作为选项卡的容器进行设置。

首先设置一个基本的ng-view:

<div ng-view></div>

通过您的app config连接...

$routeProvider.
      when('/tab2', {
        templateUrl: 'templates/tab2.html',
        controller: 'tab2'
    }).

最后,您需要向路由提供程序添加“条件加载”。链接语法将是site / module?conditional(或任何你想要的问号)。

请参阅此处的文档并搜索$ location.search()。简单地将按钮链接到条件URL,该条件URL表示选项卡的条件数据。

https://docs.angularjs.org/api/ng/service/ $位置

注意:使用$ location.search()[“”]检索条件网址后,只需将其连接到网址字符串

templateUrl: 'templates/tab2' + searchObject["v"] +'.html',

为了正确路由。如果没有呈现条件语句,则url将像往常一样路由到默认模板或html文件。

TL; DR: 1)使用$ routeProvider设置创建配置文件 2)使用选项卡的数据创建指向模板的条件链接。 3)将您的按钮链接到该链接