Причина проста, даже если URL-адрес не меняет компонент, VueJS в основном повторно использует компонент и, следовательно, больше не вызывает метод mount ().
Обычно вы можете просто установить наблюдатель и немного изменить свой код
methods: {
fetchData(userName) {
axios.get('/markers/' + this.username)
.then(response => {
this.markers = response.data.markers
}).catch((error) => console.log(error));
}
},
watch: {
'$route.params': {
handler(newValue) {
const { userName } = newValue
this.fetchData(userName)
},
immediate: true,
}
}
РЕДАКТИРОВАТЬ: добавлена опция inmediate true и удален подключенный хук ()
Еще нет, но возможно скоро. Во-первых, обратите внимание, что Ваш предложенный запрос не будет работать вообще в LINQ к Объектам, с или без свойства, потому что в настоящее время это не поддерживает, Содержит. Новая версия Платформы Объекта в.NET 4.0, однако, как предполагается, поддерживает пользовательские методы в LINQ к запросам Объектов. Вы видите видео об этом от PDC. По существу необходимо записать пользовательский метод дважды; однажды в коде, и однажды на Вашей базе данных (например, в вычисляемом поле). Посмотрите видео для получения дополнительной информации.
Craig,
Sarted, смотрящий видео, затем понял, что это более чем один час длиной, так должен будет наблюдать его, когда у меня есть больше времени. Только сообщить хотя.. Содержит, кажется, работает хорошо на меня, вот SQL, это сгенерировано Linq к Объектам:
SELECT
1 AS [C1],
[Extent1].[PeopleID] AS [PeopleID],
[Extent1].[Forenames] AS [Forenames],
[Extent1].[Surname] AS [Surname]
FROM [dbo].[People] AS [Extent1]
WHERE (CHARINDEX(N'Dave', [Extent1].[Forenames] + N' ' + [Extent1].[Surname])) > 0
Это, кажется, работает обработка. Используя CHARINDEX к тренировке, если поле Concatinated содержит введенный текст, который является вышеупомянутым случаем, был "Dave".
Спасибо Dave
The reason Contains "works" for you is because you're calling String.Contains, and not IEnumerable.Contains, as Craig thought.