相关疑难解决方法(0)

我如何引用加载当前正在执行的脚本的脚本标记?

如何引用加载当前运行的javascript的脚本元素?

这是情况.我在页面中加载了一个"主"脚本,首先是在HEAD标记下.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script type="text/javascript" src="scripts.js"></script>
Run Code Online (Sandbox Code Playgroud)

"scripts.js"中有一个脚本,它需要能够按需加载其他脚本.普通方法对我来说并不适用,因为我需要添加新脚本而不引用HEAD标记,因为HEAD元素还没有完成渲染:

document.getElementsByTagName('head')[0].appendChild(v);
Run Code Online (Sandbox Code Playgroud)

我想要做的是引用加载当前脚本的脚本元素,以便然后我可以将新的动态加载的脚本标记添加到DOM之后.

<script type="text/javascript" src="scripts.js"></script>
loaded by scripts.js--><script type="text/javascript" src="new_script1.js"></script>
loaded by scripts.js --><script type="text/javascript" src="new_script2.js"></script>
Run Code Online (Sandbox Code Playgroud)

javascript element parent

275
推荐指数
8
解决办法
13万
查看次数

加载相对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万
查看次数