$ scope.someFunc = function(){}在视图中变为null

时间:2014-05-15 13:46:54

标签: javascript angularjs function coffeescript scope

我有这个小型Angular应用程序。我希望范围有someFunc命名的函数,以便我可以在任何视图中使用它。但是,当我从我的观看中访问它时,它变为null,而someVar等变量按预期保存内容。

使用AngularJS Batarang,我可以确认$ rootScope.someFunc确实是null

不确定我在这里做错了什么?

app.js.coffee

app = angular
  .module 'app'
  .run ($rootScope) ->
     $rootScope.someFunc = -> 'whatever'
  .controller 'default', ($scope) ->
     $scope.someVar = 'whatever'

app.html

<html ng-app='app'>
  <head><script src='./app.js'><!-- assuming it's compiled from app.js.coffee --></head>
  <body ng-controller='default'>
    <p>$scope.someVar = {{someVar}}</p>
    <p>$rootScope.someFunc() = {{someFunc()}}
  </body>
</html>

提前致谢!

1 个答案:

答案 0 :(得分:0)

感谢Blackhole和Andrew。

经过一番挣扎,我发现分配给$rootScope$scope的功能确实存在,并且可以从视图中访问。有两件事让我觉得他们不相信:

  • AngularJS Batarang将模型中的函数显示为null

Batarang

    任何控制器外的
  • ng-click="someRootScopeFunc()"都没有触发该功能,也没有引发任何错误。

我觉得后者很奇怪,但可能只是我对AngularJS的理解有限。