ㅤ
AngularJS v1.7.7
orderBy неверно работает.
ng-repeat="action in model.actions | orderBy:['sortOrder','-id']"
actions: Array(2)
0: {id: 3, sortOrder: 1}
1: {id: 2, sortOrder: 2}
В итоге отображаются id=2,id=3
DARK CITY
pa[aad
и да, никто и никогда не будет скачивать какие-то подозрительные архивы и еще распаковывать
pa[aad
это как код на фотке с телефона
DARK CITY
pa[aad
линк
найдите сами
есть гугл для этого и ключевые слова для поиска это - js noobs telegram
ㅤ
Mikhail
Ребят, всем привет, помогите плз, столкнулся с проблемой что Timeout выполняется лишь один раз.
var timer2;
timer2 = $timeout(function () {
$scope.notactiveproducts();
$scope.notactivesending();
$scope.notactiveComing();
$scope.displayClients();
},10000);
Константин
Константин
А не таймаут
Константин
Ну да, этим занимается интервал, а не таймаут
Константин
Таймаут просто отсрочивает выполнение блока кода
Mikhail
Ну да, этим занимается интервал, а не таймаут
Вот так вот все работает -
$scope.notactiveComing = function() {
$http.get('api/v1/coming/notactivecoming')
.success(function(data) {
$scope.notactivecomings = data;
var number = $scope.notactivecomings.length;
})
$timeout(function () {
$scope.notactiveComing();
},10000);
}
Константин
Константин
Ты все верно делаешь, но используешь неверный модуль
Константин
Mikhail
да
Константин
Возможно тебе и правда нужен таймаут
Константин
у тебя реально он один раз выполняет?
Константин
Это странно
Константин
Он заходит при дебаге в success?
Mikhail
Возможно тебе и правда нужен таймаут
$scope.notactiveComing = function() {
$http.get('api/v1/coming/notactivecoming')
.success(function(data) {
$scope.notactivecomings = data;
var number = $scope.notactivecomings.length;
})
$timeout(function () {
$scope.notactiveComing();
},10000);
}
Константин
Епт, у тебя ж таймаут вызывается не внутри функции success
Mikhail
Возможно тебе и правда нужен таймаут
А перед этим я использовал такой подход и не сработало.. Выполняло всего один раз.
var timer2;
timer2 = $timeout(function () {
$scope.notactiveproducts();
$scope.notactivesending();
$scope.notactiveComing();
$scope.displayClients();
},10000);
Константин
Тебе нужно вызвать таймаут после того как ответ пришёл, т.е. внутри success
Константин
Врубаешь о чем я?
Константин
С телефона неудобно
Константин
$scope.notactiveComing = function() {
$http.get('api/v1/coming/notactivecoming')
.success(function(data) {
$scope.notactivecomings = data;
var number = $scope.notactivecomings.length;
$timeout(function () {
$scope.notactiveComing();
},10000);
})
}
Константин
Как то так
Mikhail
Константин
Andrii
Всем привет. У меня возникла такая проблема. Вообщем у меня есть такая директива
<good-block-component data-checkingGoodsMode="checkingGoodsMode"></good-block-component>
Тоесть в етом компоненте должно появляться checkbox чтобы сделать мультивыборку товаров
Вот так
<div class="multiGoodCheckbox" data-ng-if="checkingGoodsMode">
<label class="checkboxContainer">
<input class="checkedGoods" type="checkbox" data-ng-click="clickFunc(good)" ng-model="good.selectedGood">
<span class="checkmark"></span>
</label>
</div
Вопрос в том что, когда я меняю значения checkingGoodsMode из родительського контроллера оно не меняется в директиве. Помогите пожалуйста:)
Nikolai
наверняка дело в $scope и что checkingGoodsMode находится в родительском
Andrii
Дело в том что checkingGoodsMode передается в дочерний елемент но, если поменять значеные в родительском, то оно не поменяется в дочерним
Andrii
И передается оно так
goodBlockComponent.$inject = [];
function goodBlockComponent() {
return {
restrict: "E",
// replace: false,
scope: {
good: "=",
currency: "=?",
clickFunc: "=",
checkingGoodsMode: "="
},
// link: function (scope, element, attrs) {
// scope.$watch(attrs.value, function(newValue) {
// element.text(newValue);
// });
// }
templateUrl: require("../../views/templates/search/_goodBlockComponent.html"),
controller: 'goodItemComponentCtrl'
}
}
module.exports = goodBlockComponent;
Rem1te
Rem1te
checkingGoodsMode - примитив?
Rem1te
var a = true;
var b = a;
a = false;
b === ???
var a = { foo: true, }
var b = a;
a.foo = false;
b.foo === ???
Andrii
boolean
Rem1te
Булиан - примитивы
Примитивы передаються по значению а не по ссылке
Rem1te
в вашем случае первый кейс из моего примера, b сохранит старое значение
Andrii
Тоесть вариант передать обьект вместо булиан?
Rem1te
Все упирается в то насколько ваша религия позволяет писать "невяные" вещи для обхода проблем
Rem1te
Но вообще да это решит проблему
Rem1te
Не просто передать обьек, но и сторить обьект в родителе
Rem1te
checkingGoodsMode = {
value: false,
}
checkingGoodsMode.value = true;
checking-goods-mode="$ctrl.checkingGoodsMode"
ng-if="checkingGoodsMode.value"
Andrii
гмм.. интересно, попробую. Спасибо
Rem1te
но я бы предпочел
<
и внутри компонента смотрнеть на входящий параметр
Andrii
через $watch?
Rem1te
checkingGoodsMode: "<"
в потомке
ng-if="$ctrl.checkingGoodsMode"
в таком случае вы всегда будете получать актуальное значение из родителя
Rem1te
даже если там будет буль
Rem1te
но если вам нужно менять это значение из потомка в родителе - ето не будет работать
Rem1te
прийдеться писать колбек
Rem1te
Справедливости ради - колбеки лучше чем нг-модель
Rem1te
вот это вот ту вей дата байдинг зло из зол
Andrii
менять нужно только из родительского
Rem1te
значит < и порешали
Andrii
вопрос что такое $ctrl?
Andrii
его нужно инжектировать?
Rem1te
а забей, это когда используешь Ангуляр джс без скоупа нужно хранилище и имя для этого хранилища
в твоем случае в темплейте будет просто ng-if="checkingGoodsMode"
Andrii
не роботает:(
Nikolai
да у него стопудово проёбан скоуп
Nikolai
а переменную, небось, в контроллере меняешь
Nikolai
а в html куча ng-if
Andrii
угу
Andrii
Nikolai
ну
Nikolai
делай кучу $parent.$parent.$parent.$parent.$parent.$parent.checkingGoodsMode
Nikolai
сколько там скопов создал, столько и парентов
Nikolai
= и < дадут обновление булеана в директиве
Nikolai
но < круче, да