История изменений
Исправление Y, (текущая версия) :
Как-то вот так. Только $http должна быть определена.
link: function(scope, elem, attr, ctrl) {
var divElem = elem[0];
var ngElem = angular.element(divElem);
elem.bind('click', function() {
if (scope.category.selected !== undefined) {
$http.get('api_method').then(function(result) {
scope.items = result.data;
console.log(scope.items);
scope.$apply();
});
} else {
console.log('Something wrong');
}
});
}
scope.items ведь обновляется в коллбеке http.get, асинхронно, к тому времени scope.$apply, в который ты передавал свою функцию уже завершился (тот scope.$apply, который я убрал). А его надо вызывать по завершению изменения данных или передавать в коллбек что-то синхронное.
Можно, и, пожалуй, лучше, сделать вот так:
link: function(scope, elem, attr, ctrl) {
var divElem = elem[0];
var ngElem = angular.element(divElem);
elem.bind('click', function() {
if (scope.category.selected !== undefined) {
$http.get('api_method').then(function(result) {
scope.$apply(function() {
scope.items = result.data;
});
});
} else {
console.log('Something wrong');
}
});
}
Исправление Y, :
Как-то вот так. Только $http должна быть определена.
link: function(scope, elem, attr, ctrl) {
var divElem = elem[0];
var ngElem = angular.element(divElem);
elem.bind('click', function() {
if (scope.category.selected !== undefined) {
$http.get('api_method').then(function(result) {
scope.items = result.data;
console.log(scope.items);
scope.$apply();
});
} else {
console.log('Something wrong');
}
});
}
scope.items ведь обновляется в коллбеке http.get, асинхронно, к тому времени scope.$apply, в который ты передавал свою функцию уже завершился (тот scope.$apply, который я убрал). А его надо вызывать по завершению изменения данных или передавать в коллбек что-то синхронное.
Можно, и, пожалуй, лучше, сделать вот так:
link: function(scope, elem, attr, ctrl) {
var divElem = elem[0];
var ngElem = angular.element(divElem);
elem.bind('click', function() {
if (scope.category.selected !== undefined) {
$http.get('api_method').then(function(result) {
scope.$apply(function() {
scope.items = result.data;
});
});
} else {
console.log('Something wrong');
}
});
}
Исправление Y, :
Как-то вот так. Только $http должна быть определена.
scope.items ведь обновляется в коллбеке http.get, асинхронно, к тому времени scope.$apply, в который ты передавал свою функцию уже завершился (тот scope.$apply, который я убрал). А его надо вызывать по завершению изменения данных или передавать в коллбек что-то синхронное.
link: function(scope, elem, attr, ctrl) {
var divElem = elem[0];
var ngElem = angular.element(divElem);
elem.bind('click', function() {
if (scope.category.selected !== undefined) {
$http.get('api_method').then(function(result) {
scope.items = result.data;
console.log(scope.items);
scope.$apply();
});
} else {
console.log('Something wrong');
}
});
}
Исходная версия Y, :
Как-то вот так. Только $http должна быть определена.
link: function(scope, elem, attr, ctrl) {
var divElem = elem[0];
var ngElem = angular.element(divElem);
elem.bind('click', function() {
if (scope.category.selected !== undefined) {
$http.get('api_method').then(function (result) {
scope.items = result.data;
console.log(scope.items);
scope.$apply();
});
} else {
console.log('Something wrong');
}
});
}