У меня есть переменная в рамках моего контроллера и его значение должны наблюдаться в директиве, используемой на представлении, что-то вроде этого:
<grid options="gridOptions" /> // view's markup
# --- controller ---
# not important, just to show that columns loaded lazily
schemaService.getColumns().then (cols)-> $scope.columns = cols
$scope.gridOptions =
columns: $scope.columns # here, this wouldn't work
# but, if done like this:
columns: -> return $scope.columns # note: it's a function
# --- and inside the 'grid' directive ---
cols = ->
return scope.options.columns # again this wouldn't work
return scope.options.columns() # but if it's done like a function - does
scope.$watch cols, (newVal, oldVal)->
console.log "columns changed"
,true
Так как вы может видеть, когда я делаю значение gridOptions.columns
функцией - он работает, если я делаю это объектом - $ watch не видит никаких изменений,
И я не хочу, чтобы он как функция, я хочу получить к нему доступ как объект, я даже пытался сделать gridOptions.columns
return self executable - до сих пор не работал
Мне любопытно, почему это происходит
oh ... ладно, это объясняет. благодаря – Agzam