AngularJs 使用 ui-router , 子页面里面的 js 不执行什么鬼?

2015-11-27 15:07:47 +08:00
 wensonsmith
父页面为

```html
<body ng-app="test">

<!-- 顶部加载页面的地方 -->
<div ui-view=""></div>
</body>
```

子页面为:


```html
<h1>Hello world</h1>
<script>
alert("Hello world");
</script>
```

使用 ui-router 进行加载

```js

$stateProvider
.state('test', {
url:"/test",
templateUrl:"pages/test.html"
})
```


页面加载进来了,但是哪个 alert 没有执行,怎么让他执行啊?
7894 次点击
所在节点    程序员
29 条回复
wensonsmith
2015-11-27 16:27:20 +08:00
@klesh 为啥要延迟 100ms .. 刚接触,不太懂
yimity
2015-11-27 16:38:13 +08:00
angular.module('core').directive('loadScript', function() {
return {
restrict: 'EA',
terminal: true,
link: function(scope, element, attr) {
if (attr.ngSrc) {
var s = document.createElement('script');
s.src = attr.ngSrc;
document.body.appendChild(s);
}
}
};
});

<div load-Script ng-src="/jquery.js"></div>
wensonsmith
2015-11-27 16:43:37 +08:00
@JenJieJu
@yimity 多谢!
haogre
2015-11-27 16:51:28 +08:00
放路由首页面里啊 xxdd
zythum
2015-11-27 17:44:01 +08:00
@wensonsmith 但是管用并且改动最小。黑科技什么的,没有做不到的,只有想不到的。
klesh
2015-11-27 17:49:32 +08:00
@wensonsmith 因为 controller 是先于 template 执行的。 timeout 就是等 dom 树准备好之后再执行。
hosealee
2015-11-27 18:27:17 +08:00
写在 controller 里鬼就会消失吧。。。。
beginor
2015-11-27 23:36:12 +08:00
这样会把 angular 玩坏的,写在 directive 或者 controller 里面吧
jsq2627
2015-11-28 03:21:06 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/239426

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX