Javascript 在ui路由器模板URL中运行脚本

Javascript 在ui路由器模板URL中运行脚本,javascript,angularjs,angularjs-directive,angular-ui-router,Javascript,Angularjs,Angularjs Directive,Angular Ui Router,我目前有一个使用Angular和UI路由器的单页web应用程序。我的大部分javascript文件都加载在index.html页面上,这些文件在整个应用程序中都能完美工作 问题:我有一个状态,在调用该状态时需要运行javascript代码。(当ui路由器将此状态的特定templateURL中的html注入ui视图时,我需要在注入的html中运行javascript)。我已经搜索了一整天,并尝试了各种解决方案,但没有任何效果 是否有添加此功能的最佳实践?谢谢。还不清楚,但我认为问题在于您注入的HT

我目前有一个使用Angular和UI路由器的单页web应用程序。我的大部分javascript文件都加载在index.html页面上,这些文件在整个应用程序中都能完美工作

问题:我有一个状态,在调用该状态时需要运行javascript代码。(当ui路由器将此状态的特定templateURL中的html注入ui视图时,我需要在注入的html中运行javascript)。我已经搜索了一整天,并尝试了各种解决方案,但没有任何效果


是否有添加此功能的最佳实践?谢谢。

还不清楚,但我认为问题在于您注入的HTML中的
脚本
标记没有运行。您不需要使用标准的
script
标记,而是需要创建一个允许您执行此操作的指令。有关如何操作的说明,请参见Paolo在上的回答


请注意,如果您这样做,您将承担脚本安全性的部分责任。

这不清楚,但我认为问题在于您注入的HTML中的
脚本
标记没有运行。您不需要使用标准的
script
标记,而是需要创建一个允许您执行此操作的指令。有关如何操作的说明,请参见Paolo在上的回答


请注意,如果您这样做,您将承担脚本安全性的部分责任。

这看起来与我正试图做的完全相同。那么,我是否必须为每个需要加载到某个状态的javascript文件创建一个单独的指令(这不是什么大问题,但很奇怪)?最后一步是什么,只是将指令中的元素包含在我所在州的templateURL中。例如,Paolo会在templateUrl中包含他正在加载GoogleAPI的状态?谢谢。@user2263572:不,一旦你写了指令,你可以在任何地方重复使用它。您最多需要两个:一个运行直接嵌入到您试图包含的HTML中的javascript(例如,
var foo=“bar”…
),另一个从另一个位置加载javascript(例如
)。只需将您试图包含的HTML中的
script
标记更改为相应的指令,您就可以进行设置了。我能够为这两种类型的脚本进行延迟加载。不幸的是,尽管lazyloading可以与我的测试脚本一起工作,但它不能与我尝试lazyload的GoogleCharts API一起工作。如果你认为你知道为什么这个新问题会出现在这里。再次感谢你的帮助,我取得了一些实质性的进展。这看起来正是我想要做的。那么,我是否必须为每个需要加载到某个状态的javascript文件创建一个单独的指令(这不是什么大问题,但很奇怪)?最后一步是什么,只是将指令中的元素包含在我所在州的templateURL中。例如,Paolo会在templateUrl中包含他正在加载GoogleAPI的状态?谢谢。@user2263572:不,一旦你写了指令,你可以在任何地方重复使用它。您最多需要两个:一个运行直接嵌入到您试图包含的HTML中的javascript(例如,
var foo=“bar”…
),另一个从另一个位置加载javascript(例如
)。只需将您试图包含的HTML中的
script
标记更改为相应的指令,您就可以进行设置了。我能够为这两种类型的脚本进行延迟加载。不幸的是,尽管lazyloading可以与我的测试脚本一起工作,但它不能与我尝试lazyload的GoogleCharts API一起工作。如果你认为你知道为什么这个新问题会出现在这里。再次感谢你的帮助,我取得了一些实质性的进展。这看起来正是我想要做的。那么,我是否必须为每个需要加载到某个状态的javascript文件创建一个单独的指令(这不是什么大问题,但很奇怪)?最后一步是什么,只是将指令中的元素包含在我所在州的templateURL中。例如,Paolo会在templateUrl中包含他正在加载GoogleAPI的状态?谢谢。@user2263572:不,一旦你写了指令,你可以在任何地方重复使用它。您最多需要两个:一个运行直接嵌入到您试图包含的HTML中的javascript(例如,
var foo=“bar”…
),另一个从另一个位置加载javascript(例如
)。只需将您试图包含的HTML中的
script
标记更改为相应的指令,您就可以进行设置了。我能够为这两种类型的脚本进行延迟加载。不幸的是,尽管lazyloading可以与我的测试脚本一起工作,但它不能与我尝试lazyload的GoogleCharts API一起工作。如果你认为你知道为什么这个新问题会出现在这里。再次感谢你的帮助,我取得了一些实质性的进展。