小编Dan*_*son的帖子

加载相对templateUrl

我一直在努力寻找创建模块化,可扩展角度应用程序的最佳方法.我非常喜欢angular-boilerplate,angular-app等项目的结构,其中所有相关文件按部分和指令的特征组合在一起.

project
|-- partial
|   |-- partial.js
|   |-- partial.html
|   |-- partial.css
|   |-- partial.spec.js
Run Code Online (Sandbox Code Playgroud)

但是,在所有这些示例中,模板URL相对于基本URL加载,而不是相对于当前文件:

angular.module('account', [])
.config(function($stateProvider) {
  $stateProvider.state('account', {
    url: '/account',
    templateUrl: 'main/account/account.tpl.html', // this is not very modular
    controller: 'AccountCtrl',
  });
})
Run Code Online (Sandbox Code Playgroud)

这不是非常模块化的,并且可能难以在大型项目中维护.templateUrl每次移动任何这些模块时,我都需要记住改变路径.如果有一些方法可以相对于当前文件加载模板,那将是很好的,如:

templateUrl: './account.tpl.html'
Run Code Online (Sandbox Code Playgroud)

有没有办法在角度做这样的事情?

angularjs angularjs-directive angular-template angular-ui-router

42
推荐指数
2
解决办法
5万
查看次数

AngularJS:使用第三方库而不暴露全局变量

在不暴露全局变量的情况下在Angular中使用第三方库的最佳方法是什么?

例如,如果我使用underscore.js,我想只将_注入使用它的控制器.

angular.module('module').controller(function(_) {
  // _ is injected only into this scope
};
Run Code Online (Sandbox Code Playgroud)

为了达到这个效果,我看到有些人用脚本标签全局加载下划线,然后创建这样的服务:

myModule.factory('_', function ($window) {
    return $window._;
});
Run Code Online (Sandbox Code Playgroud)

但是,这仍然用_污染全球范围.

是否存在注册和注入第三方库而不会导致此问题的"Angular方式"?

angularjs

14
推荐指数
3
解决办法
6689
查看次数