这是指令的正确用法吗?

时间:2015-04-23 06:36:39

标签: angularjs angularjs-directive

我的任务是为大型角度应用程序设置初始应用程序结构,我遇到了一些博客文章,基本上说一切都应该是一个指令(我大多赞同),但我有一种感觉,我已经采取了这个想法太过分了..

我得到的基本上是 - 当你导航到portal ui-router将从templates文件夹加载门户模板时,实际模板内的所有内容都是<portal-view></portal-view .. {{1基本上整个视图都包含在一个指令中。

路线

portalView

portal.tpl.html

angular.module('portal').config([
'$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) {
    $stateProvider.state('portal', {
        url: "/",
        templateUrl: "templates/portal.tpl.html"
    });
}]);

portalView指令

<div class="container">
<portal-view></portal-view>
</div>

portalView文件夹

  • portalView
    • portalView.controller.js
    • portalView.js
    • portalView.less
    • portalView.tpl.html

在我的脑海中,这似乎是一个好主意,但当我们开始向应用程序添加更多视图时,我可以成为一件苦差事,但我希望一些有角度的专家会告诉我这是最好的方法:)

非常感谢任何帮助,建议和链接!

1 个答案:

答案 0 :(得分:3)

对视图进行组件化并将其置于指令中对我来说是一个明智的想法。如果发生这种情况,这将简化向另一个路由器的迁移。

如果您打算遵循这种做法,

portal.tpl.html是不必要的,template: '<portal-view></portal-view>'就足够了。但是如果你有计划将模板用于css和js资产加载(使用模板中的脚本不是直截了当,但有可能),请不要拒绝它,它会非常适合该方案。