Вызовая функция контроллера из директивы не обновляет представлениеJquery

Программирование на jquery
Ответить Пред. темаСлед. тема
Anonymous
 Вызовая функция контроллера из директивы не обновляет представление

Сообщение Anonymous »

Я создаю приложение, в котором запрос Ajax извлекает список пакетов с сервера и отображает их. < /p>

Директива должна делать 2 вещи: < /p>

1- Извлекать данные с сервера с помощью запроса Ajax, когда элемент нажимается < /p>

2- Поберите какой-то html из других мест на странице и вставьте его в следующем месте. Проблема: при нажатии на пакет запрос Ajax получает данные от сервера, а DOM манипулируют. Я также вижу, что переменная Scope $ scope.packagedetails обновляется в контроллере. Но изменения не отражаются с учетом. однако, если я нажму еще раз на пакет, представление обновляется на этот раз. Это казалось наиболее распространенной проблемой для других разработчиков, но не решало мою проблему. < /P>

попробовал использовать NG-клик в элементе, но не удачи. />/*
an array that creates the rows and columns
$scope.packageList = [];
*/
$scope.getPackageDetails = function (packageId) {
console.log('get details for ' + packageId);
ajaxService.getPackageDetails(packageId).then(function (data) {
if (parseInt(data.ResponseStatus, 10) === 0) {
$scope.packageDetails = data.Packages;
// i have tried $scope.$apply() here; doesn't work
}
});
< /code>

Просмотр < /p>





{{package.Name}}





< /code>

Директива < /p>

epApp.directive('packageDetails', function () {
return {
scope:
{
hasResponse: '=hasResponse',
click: '=click'
},
link: function (scope, elem, attrs) {
if (scope.$parent.$last) {
$(elem).parent('div.row').find('div.onePackage').on('click', function () {
/* some dom manipulation */
var packages_content = jQuery('.packages_widget_append').html();
jQuery(this).closest(".row").after(packages_content);

/* called parent controller function to get the details*/
console.log('clicked ' + parseFloat(attrs.packageId));
scope.click(parseFloat(attrs.packageId));
// i have tried $scope.$apply() here as well; doesn't work

});
}
}
}

});
< /code>

Пожалуйста, помогите. < /p>

Спасибо. < /p>

Подробнее здесь: https://stackoverflow.com/questions/308 ... pdate-view
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Jquery»