Другие ответы превосходны, и я просто хочу дать прямой ответ на этот вопрос. Просто ограничение асинхронных вызовов jQuery
Все вызовы ajax (включая $.get
или $.post
или $.ajax
) асинхронны.
Учитывая ваш пример
var outerScopeVar; //line 1
$.post('loldog', function(response) { //line 2
outerScopeVar = response;
});
alert(outerScopeVar); //line 3
Выполнение кода начинается с строки 1, объявляет переменную и триггеры и асинхронный вызов в строке 2 (т. е. пост-запрос), и продолжает выполнение из строки 3, не дожидаясь, когда почтовый запрос завершит выполнение .
Допустим, что запрос на отправку занимает 10 секунд, значение outerScopeVar
будет установлено только после этих 10 секунд.
Чтобы попробовать,
var outerScopeVar; //line 1
$.post('loldog', function(response) { //line 2, takes 10 seconds to complete
outerScopeVar = response;
});
alert("Lets wait for some time here! Waiting is fun"); //line 3
alert(outerScopeVar); //line 4
Теперь, когда вы выполните это, вы получите предупреждение в строке 3. Теперь подождите некоторое время, пока не убедитесь, что почтовый запрос вернул некоторое значение. Затем, когда вы нажмете «ОК», в окне предупреждения следующее предупреждение выведет ожидаемое значение, потому что вы его ждали.
В сценарии реальной жизни код становится,
var outerScopeVar;
$.post('loldog', function(response) {
outerScopeVar = response;
alert(outerScopeVar);
});
Весь код, который зависит от асинхронных вызовов, перемещается внутри асинхронного блока или ожидает асинхронных вызовов.
images
) в проекте Visual Studio. Build Action
в Resource
(в окне «Свойства» см. второе изображение в этом ответе ). Затем напишите свойство UriSource
, как вы уже сделали:
UriSource="/images/jamsnaps-dark.png"
Этот URI является фактически URI файла файла ресурсов , где префикс автоматически добавляется WPF.
Include in Project
Действие сборки должно быть установлено по умолчанию Resource
.
Затем вы можете начать использовать путь изображения относительно корня, например images/text.jpg
, если вы поместите его в папку с именем images
.
Две опции:
1) Выйдите из bin / Debug и в свою папку приложений с помощью ../../, а затем на свое изображение.
<Image>
<Image.Source>
<BitmapImage UriSource="../../images/jamsnaps-dark.png" />
</Image.Source>
</Image>
2) Скомпилируйте свои изображения как контент из свойств в контекстном меню в файле изображения, а затем при компиляции они будут помещены в отладочную. Я не помню, если вам также нужно сказать им, чтобы они копировали локальные объекты также в свойствах (я не рядом с компьютером в данный момент, поэтому я не могу проверить.