powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / TypeScript + Model: При загрузки страницы значения модели обнуляются!
11 сообщений из 11, страница 1 из 1
TypeScript + Model: При загрузки страницы значения модели обнуляются!
    #39611794
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юзаю MVS 2017 + TypeScript
Есть пример и он работает:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
class UserList {
     private users: Array<User> = new Array<User>();
     load() : void {
         $.getJSON('http://localhost:21204/Home/GetUsers',
            (data) => {
                this.users = data;
            });
    }
     displayUsers(): void {
        for (var i = 0; i < this.users.length; i++) {
                alert(this.users[i].Name); //this.users - заполнен данными
        }
    }
}
class User {
    Id: number;
    Name: string;
    Age: number;
}


Я добавляю загрузка html-файла в блок <div> и получаю обнуление значения модели:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
class UserList {
     private users: Array<User> = new Array<User>();
     load() : void {
         $.get('../file.html', function (data1) {  // !!! Вот тут загрузка хтмл-файла !!!
              $('#LoadPage').html(data1); //Пихаю их в "див"
              $.getJSON('http://localhost:21204/Home/GetUsers',
                   (data) => {
                     this.users = data;
              });
         });
    }
     displayUsers(): void {
        for (var i = 0; i < this.users.length; i++) {
                alert(this.users[i].Name); //this.users - пустой!!!
        }
    }
}
class User {
    Id: number;
    Name: string;
    Age: number;
}


В "displayUsers()" уже "this.users" - пустая !!!
...
Рейтинг: 0 / 0
TypeScript + Model: При загрузки страницы значения модели обнуляются!
    #39612362
maxkar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
potkin,

У меня сильное подозрение, что this.users пустая не "уже" а "еще". Это подозрение основано на том, что TypeScript разработчики скорее всего были ленивы и унаследовали большую часть станадртных граблей Javascript. Данная конкретная грабля в том, что функция в стиле (data) => { ... } в javascript не имеет своего this (он берется из внешнего scope). А вот function(data1) - уже определяет контекст, в котором this привязан к этой самой функции. Поэтому у вас users устанавливается на другом объекте (лень искать, что там в качестве this у callback).

Гуглите и вдумчиво изучайте "this в javascript".
...
Рейтинг: 0 / 0
TypeScript + Model: При загрузки страницы значения модели обнуляются!
    #39612473
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maxkarГуглите и вдумчиво изучайте "this в javascript".

Да чо там изучать

Код: javascript
1.
let self = this;



А потом self везде вместо this.

Сам пример только днищенский какой-то. О порядке вызова функций этого шедевра архитектуры надо самим догадаться?
...
Рейтинг: 0 / 0
TypeScript + Model: При загрузки страницы значения модели обнуляются!
    #39612503
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомmaxkarГуглите и вдумчиво изучайте "this в javascript".

Да чо там изучать

Код: javascript
1.
let self = this;




А потом self везде вместо this.Изучить хотя бы то, что в современном JavaScript self = this не надо делать.
...
Рейтинг: 0 / 0
TypeScript + Model: При загрузки страницы значения модели обнуляются!
    #39612533
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАгнец за бортомпропущено...


Да чо там изучать

Код: javascript
1.
let self = this;




А потом self везде вместо this.Изучить хотя бы то, что в современном JavaScript self = this не надо делать.

Что такое современный? ES6?
...
Рейтинг: 0 / 0
TypeScript + Model: При загрузки страницы значения модели обнуляются!
    #39612577
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомЧто такое современный? ES6?

ECMAScript 2016
...
Рейтинг: 0 / 0
TypeScript + Model: При загрузки страницы значения модели обнуляются!
    #39612579
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом,

ультра-современный под Babel
...
Рейтинг: 0 / 0
TypeScript + Model: При загрузки страницы значения модели обнуляются!
    #39612710
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом,
Код: sql
1.
let self = this;


И где её объявить?!
Если объявить в методе, например load , то компилятор ругается на "this.users" (не видит "users")
Если объявить "вне" методов load и displayUsers , то компилятор так же ругается "Неожиданный токен ..."

авторСам пример только днищенский какой-то. О порядке вызова функций этого шедевра архитектуры надо самим догадаться?

Пример от сюда: https://metanit.com/web/typescript/5.1.php

Пробую в новом проекте использовать TS, не получается пока что ...
...
Рейтинг: 0 / 0
TypeScript + Model: При загрузки страницы значения модели обнуляются!
    #39612720
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
potkin,

Замени это

function (data1) {

На лямбду.
...
Рейтинг: 0 / 0
TypeScript + Model: При загрузки страницы значения модели обнуляются!
    #39612723
stanilar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИзучить хотя бы то, что в современном JavaScript self = this не надо делать.

А как в современном js проверить, что после того, как self стал = null, к нему нет обращений? С self то все понятно - будет ошибка.
...
Рейтинг: 0 / 0
TypeScript + Model: При загрузки страницы значения модели обнуляются!
    #39617498
Фотография potkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортомЗамени это
function (data1) {
На лямбду.

Заменил. Всё равно в displayUsers() - users пустой!
Может ещё будут идеи?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / TypeScript + Model: При загрузки страницы значения модели обнуляются!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]