Poniższy kontroler działa bez problemu.Metoda `bind` JavaScript nie działa zgodnie z oczekiwaniami
app.controller('foo', ['$scope',function ($scope) {
$scope.delete = function(){
bar($scope);
}
}]);
Próbowałem zrobić to trochę czystsze za pomocą bind
:
app.controller('foo', ['$scope',function ($scope) {
$scope.delete = bar.bind(null, $scope);
}]);
Niestety, ta forma nie działa zgodnie z oczekiwaniami i $scope
jest zawsze dostarczane ze starą wersją $ zakres w metodzie związanej (bar
tutaj), nawet po zmianie zakresu, aby odnosić się do innej wartości. Co jest z tym nie tak?
Co jeszcze?
Jeśli nie powinienem używać tutaj bind
, jaka jest alternatywa?
Co znajduje się wewnątrz Util? Nie mogę myśleć, dlaczego miałbyś to zrobić. –
Wydaje mi się niewłaściwe użycie powiązania. –
Czy problem polega na tym, że wartość * jest * podawana do '$ scope.delete', ale jest to * stara * wartość? A może funkcja całkowicie zawodzi (lub nie jest w ogóle dostarczana)? – apsillers