从html / view </script>读取<script>值

时间:2014-02-17 13:17:04

标签: javascript angularjs

请参阅此处的代码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);  });
}

的index.html

<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>

partials(test1,test2)

<h2>In test1</h2>

<script>
  _global_link_partial = {link: 'link1'}
</script>

<h2>In test2</h2>

<script>
  _global_link_partial = {link: 'link2'}
</script>

1 个答案:

答案 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足够聪明,可以将脚本标记视为特殊。

这是一个掠夺者:http://plnkr.co/edit/UhKx8QWGTExLgdQMJuyi?p=preview

我将你的示例plunker改为最新版本的angular.js(1.2.13),并且稍微更改了路线。