люди.Закрытие внутри Угловой контроллер
Я изучаю AngularJS, и я удивляюсь, почему функция внутри контроллера не работает как clojure. Вот классический пример того, как закрытие работ
var inner;
var outer = function(x) {
inner = function() {
console.log(x);
}
}
outer(3);
inner();
Итак, я ожидал подобное поведение от этого куска кода
angular.module('MyModule')
.value('x', 3)
.controller('MyCtrl', function($scope, x) {
$scope.showMeX = function() {
alert(x);
}
}
});
Тем не менее, впрыскивается переменной «х» не доступен из внутри «showMeX '. Почему нет?
Я мог догадаться, что Angular обеспечивает доступ к объекту $ scope, чтобы избежать беспорядка с некоторыми объектами, которые являются внешними по отношению к области $ scope, и такие объекты этой логикой должны быть «невидимыми». Тем не менее, на данный момент я не понимаю, как это работает.
Любые мысли? Ссылка на некоторые разъясняющие вещи для чтения была бы идеальной.
Кажется, что он отлично работает http://jsfiddle.net/ab537s7v/. Вы получаете сообщение об ошибке? – pablochan
О, мой плохой, я копировал его из моего кода, не пытаясь сыграть скрипку. спасибо за довольно ответ, это действительно работает, и все идет так, как ожидалось. я должен удалить свой вопрос сейчас, не имеет смысла держать его, правильно? –
Ну, вы можете опубликовать ответ, чтобы объяснить, что произошло, все в порядке, чтобы сделать некоторые ошибки, пока вы делаете это правильно в конце. :) – axelduch