Я пытаюсь обновить значение переменной из директивы, но она не определена, когда я использую ее в функции.переменная области видимости контроллера не обновляется в директиве
Директива:
link: function (scope, elem, attrs) {
elem.bind('click', function() {
scope.$apply(function() {
scope.UserName = elem.html();
});
scope.$apply("MyFunc()");
});
}
Контроллер:
$scope.MyFunc = function myfunction() {
OrderService.ServiceFunc($scope.UserName, $scope.Param2).success(
function (data) {
$scope.MyData= data;
});
}
В контроллер $ scope.UserName не определен.
Я попытался использовать область действия. $ Apply() (в нескольких вариантах) - не помогло. Также применяется «scope. $ Apply» («MyFunc()»); выполняет функции, определенные в области контроллера, но по какой-то причине я не влияю на мою переменную области видимости.
, когда я добавил $ watch на эту переменную + предупреждение - единственный раз, когда он был предупрежден, был только в начале, когда он был неопределенным, хотя отладка показала, что код достигает строки, когда значение должно было изменяться в директиве ($ watch не предупредил об этом)
Thank you.
У шаблона HTML есть свойство 'UserName'? –
Нет. Я хочу обновить $ scope.Username в контроллере, чтобы он мог выполнять функцию с этой переменной. Я не нуждаюсь в нем в шаблоне html. – Lichte
использовать '$ rootScope' вместо' $ scope' –