Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法读取属性'$范围';未定义的_Javascript_Angularjs_Coffeescript_Angularjs Scope - Fatal编程技术网

Javascript 无法读取属性'$范围';未定义的

Javascript 无法读取属性'$范围';未定义的,javascript,angularjs,coffeescript,angularjs-scope,Javascript,Angularjs,Coffeescript,Angularjs Scope,当我在angular应用程序中收到html内容时,我将其注入html文档中,但随后无法获取它。举例说明 我有下一个控制器: class ReadCtrl constructor: (@$scope, @$rootScope, @$compile, @$sce, @$window, @webService) -> @getData() getData: -> promise = @webService.getBookText() promise.th

当我在angular应用程序中收到html内容时,我将其注入html文档中,但随后无法获取它。举例说明

我有下一个控制器:

class ReadCtrl

  constructor: (@$scope, @$rootScope, @$compile, @$sce, @$window, @webService) ->
    @getData()

  getData: ->
    promise = @webService.getBookText()
    promise.then @success, @error

  success: (response) =>
    @$scope.html = response.data
    @$scope.trustedHtml = @$sce.trustAsHtml(@$scope.html)
    console.log $('.book_contents').first().children()

ReadCtrl.$inject = ["$scope", "$rootScope", "$compile", '$sce', "$window", "webService"]
angular.module("bookReader").controller "ReadCtrl", ReadCtrl
方法成功将html保存到变量trustedHtml,然后绑定到视图:

<div class="br_container">
  <div class="br_source_container" ng-bind-html="trustedHtml">
  </div>
</div>
这是因为方法中的
=>
,该方法编译为:

  __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
  this.success = __bind(this.success, this);
因此,如果我将
=>
更改为
->
,则会出现另一个错误:

 TypeError: Cannot read property '$scope' of undefined
success
函数的第一行。因此,
这个
success
函数中是未定义的,可能是因为它是用promise调用的

另一个使用
$('.br_source_container').html(@$compile(@$scope.trustedHtml)(scope))
的方法也会出现相同的错误


因此,我需要获取插入部分的DOM html。

因此,问题通过
超时解决

设置范围值并期望完成摘要周期后,无法立即在控制器内运行console.log(),这就是它的工作方式。创建一个复制ProblemStillt无法做到的演示。即使是这个简化版也不行。我不太会玩咖啡…抛出错误无法初始化bookReader模块…一定是语法问题或其他原因。很好,它在plunker上工作。我不知道你想做什么…在这里工作很好,我加了一点延迟。需要一个摘要循环来重新绘制DOM
 TypeError: Cannot read property '$scope' of undefined