Use var in root scope instead of event to track linting error

This commit is contained in:
Alasdair Smith 2017-09-04 11:38:28 +01:00
parent dab799a81b
commit 53bb4fdde0
2 changed files with 5 additions and 11 deletions

View file

@ -35,7 +35,7 @@ define [
url = ace.config._moduleUrl(args...) + "?fingerprint=#{window.aceFingerprint}"
return url
App.directive "aceEditor", ($timeout, $compile, $rootScope, event_tracking, localStorage, $cacheFactory, labels, graphics, preamble, ide) ->
App.directive "aceEditor", ($timeout, $compile, $rootScope, event_tracking, localStorage, $cacheFactory, labels, graphics, preamble) ->
monkeyPatchSearch($rootScope, $compile)
return {
@ -374,16 +374,15 @@ define [
if scope.eventsBridge?
session.on "changeScrollTop", onScroll
hasLintingError = null
$rootScope.hasLintingError = false
session.on('changeAnnotation', () ->
hasErrors = session
.getAnnotations()
.filter((annotation) -> annotation.type == 'error')
.length > 0
if (hasLintingError != hasErrors)
ide.$scope.$broadcast('ide:lintingError', hasErrors)
hasLintingError = hasErrors
if ($rootScope.hasLintingError != hasErrors)
$rootScope.hasLintingError = hasErrors
)
setTimeout () ->

View file

@ -2,13 +2,8 @@ define [
"base"
], (App) ->
App.controller "AutoCompileController", ["$scope", "ide", ($scope, ide) ->
hasLintingError = false
ide.$scope.$on "ide:opAcknowledged", _.debounce(() ->
if (!hasLintingError)
if (!ide.$scope.hasLintingError)
$scope.recompile()
, 3000)
ide.$scope.$on "ide:lintingError", (e, hasError) ->
hasLintingError = hasError
]