指令是使用angularjs注入html的最佳方法

时间:2013-04-19 10:09:58

标签: angularjs angularjs-directive

我想在我的所有视图中添加一段代码,以便在顶部显示通知栏,以便通知用户。

我正试图用指令做到这一点。检查这个简单的样本: http://jsfiddle.net/dirkom/wsrb6/2/

HTML:

    <bca-notification></bca-notification>

指令:

.directive('bcaNotification', function () {
    var notification = '<div id="notification"  ng-init="showThis=true" ng-show="showThis">' +
                        'Error message<a id="close" ng-click="showThis = false">Close</a></div>'; 
            return({
                template: notification,
                restrict: "E"
            });

这是正确的方法吗?

提前致谢!

2 个答案:

答案 0 :(得分:2)

如果所有的视图都需要此标题,您应该将标题放在单独的视图中(使用自己的控制器),并使用ng-view仅更改您的主要内容区域页。

如果不同的视图需要影响标题中显示的内容(即影响标题的模型数据),则应将此模型数据放入服务中,然后不同的视图可以注入该服务以影响模型。

我最近回答了一个与此非常相似的问题,所以我建议也看一下: https://stackoverflow.com/a/16065385/215945
该答案还引用了question about a shopping basket,其中的项目计数位于标题中。项目计数需要由多个控制器更新,因此我们将其放入服务中。

答案 1 :(得分:1)

是的,这是正确的。您也可以点击此链接:http://onehungrymind.com/angularjs-directives-basics/