请参阅此处的代码http://plnkr.co/edit/FqfkcyZSqPkA7JjMMLrb?p=preview
我在html中嵌入了一个javascript对象/值,需要通过angular读取。它读取index.html中的值,但不是部分读取。 (_global_link
已正确读取,但不是_global_link_partial
)。是因为_global_link_partial
$routeChangeSuccess
无效,如果是这样,我需要听哪个事件。我可以在模块定义中提供值const
,或者直接在控制器等中提供,但是这个值非常特定于视图并且更好地维护。
感谢。
_global_link Object {link: "abc"} controllers.js:3
ReferenceError: _global_link_partial is not defined
function Test1Ctrl($scope) {
$scope.$on('$routeChangeSuccess', function ($event, current) {
console.log('_global_link', _global_link);
console.log('_global_link_partial', _global_link_partial);
});
}
function Test2Ctrl($scope) {
$scope.$on('$routeChangeSuccess', function ($event, current) {
console.log('_global_link', _global_link);
console.log('_global_link_partial', _global_link_partial); });
}
<div class="container">
<ul>
<li><a href="test1">test1</a>
<li><a href="test2">test2</a>
</ul>
<div ng-view></div>
</div>
<h2>in index.html</h2>
<script>
_global_link = {link: 'abc'}
</script>
<h2>In test1</h2>
<script>
_global_link_partial = {link: 'link1'}
</script>
<h2>In test2</h2>
<script>
_global_link_partial = {link: 'link2'}
</script>
答案 0 :(得分:1)
我说,你需要在angular.js之前加入jQuery
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.13/angular.js"></script>
在https://groups.google.com/forum/?fromgroups=#!topic/angular/H4haaMePJU0处查看@ igor的答案:
长话短说:这是因为脚本标签是特殊的,而角度不是这样处理的。如果你在这个页面上包含jquery,代码应该可以工作。
当angular检测到jquery时,它会将它用于dom操作,而jquery足够聪明,可以将脚本标记视为特殊。
我将你的示例plunker改为最新版本的angular.js(1.2.13),并且稍微更改了路线。