как ваш комментарий, я попытался, как показано ниже, в смонтированном методе (не создан). Осторожно nextTick
требуется, когда элемент vue изменяется данными
new Vue({
el: "#app",
data: {
checkoutplans : []
},
methods: {
editModal : function(param) {
console.log(param);
}
},
mounted: function() {
this.checkoutplans = [{id:1},{id:2}];
this.$nextTick(() => {
this.$el.querySelector("li.nav-item:first-child a").click();
});
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<ul>
<li class="nav-item" v-for="(checkoutplan, index) in checkoutplans" :key="checkoutplan.id">
<a class="nav-link" :class="{ 'active show' : index === 0 }" href="#settings" data-toggle="tab" @click="editModal(checkoutplan)">Checkout Plan {{index +1}}</a>
</li>
</ul>
</div>
Ваш код, кажется, щелкает первым li после вызова API! Таким образом, метод, который вы будете вызывать, - editModal({firstItem})
. Как насчет вызова метода напрямую, не нажимая, как
axios.get("api/checkoutplan")
.then(({ data }) => {this.checkoutplans = data;this.editModal(this.checkoutplans[0]) // direct call });
Созданный метод не готов к состоянию для элемента документа, поэтому вы не можете вызвать элемент документа в этом методе
blockquote>
Используйте их, где необходимо использовать/управлять шаблоны. Например, предположите, что необходимо распознать следующий шаблон:
(Вещи как это неожиданно возникают для почтового индекса, кредитной карты, проверка номера социального страхования и т.д.),
Это не действительно трудно записать в коде - но это становится более твердым, как шаблон становится более сложным. С регулярным выражением Вы описываете шаблон (а не код, чтобы проверить его) и позволить regex механизму сделать работу для Вас.
Шаблон здесь был бы чем-то как
[A-Za-z]{5,6}[0-9]{3}[a-z]
(Существуют другие способы выразить это также.) Группирующиеся конструкции помогают соответствовать целому шаблону и захвату (или замена) различные биты его, также.
Несколько оборотных сторон, хотя:
Они выглядят немного загадочными, но они обеспечивают очень мощный инструмент для нахождения шаблонов в тексте. Что-либо от href
теги в страницах HTML к проверке адресов электронной почты.
И они могут быть обработаны в очень эффективную структуру данных (FSA), который находит соответствия очень быстро.
Для чего используются регулярные выражения:
Регулярные выражения являются языком сам по себе, который позволяет Вам выполнять сложную проверку строковых исходных данных. Т.е. Вы передаете его строка, и это возвратит TRUE или FALSE, если это будет соответствие или нет.
Как используются регулярные выражения:
Некоторые функции языка регулярных выражений:
Чередование: позволяет Вам выбирать одну вещь или другого. Соответствие в качестве примера только да или нет.
yes|no
Группировка: можно определить объем и иметь приоритет с помощью круглых скобок. Например, соответствуйте 3 цветным оттенкам.
gr (a|e) y|black|white
Квантификация: можно определить количество, сколько из чего-то Вы хотите.? средство 1 или 0, * означает 0 или больше. + означает по крайней мере один. Пример: Примите двоичную строку, которая не пуста:
(0|1) +
Почему регулярные выражения?
Регулярные выражения помогают строкам совпадения, это может часто заменять несколько дюжин строк исходного кода с простой маленькой строкой регулярного выражения.
Не для всех типов соответствия:
Чтобы понять, как что-то полезно, необходимо также понять, как это не полезно. Регулярные выражения плохи для определенных задач, например, когда необходимо гарантировать, что строка имеет равное количество круглых скобок.
Доступный на примерно всех языках:
Регулярные выражения доступны на примерно любом языке программирования.
Формальный язык:
Любое регулярное выражение может быть преобразовано в детерминированный конечный автомат. И этим тем же способом можно выяснить, как сделать исходный код, который проверит регулярное выражение.
Пример:
[hc]+at
соответствия "шляпа", "кошка", "hhat", "чат", "hcat", "ccchat", и так далее, но не "в"
Их немного хитры, но чрезвычайно мощны и стоит изучить. Сеть полна учебного руководства и примеров, запустите, например, отсюда и посмотрите на примеры здесь.
Почтовым примером является на самом деле плохой пример для регулярных выражений. Regexes может использоваться, но получающееся выражение (например, этот, который не обрабатывает адреса стиля "John Doe") является чрезвычайно сложным - смотрят на спецификацию адреса электронной почты, и Вы будете видеть почему...
Однако regexes очень полезны в хосте других ситуаций, извлекая IP-адреса из текста, теги от HTML и т.д. Нахождение всех имеющих версию файлов было бы другим примером. Что-то вроде:
my_versioned_file_(\d{4}-\d{2}-\d{2}).txt
будет соответствовать любым именам файлов формата my_versioned_file_2009-02-26.txt
и вытащите дату как полученную группу (часть, перенесенная в" ()"), чтобы Вы далее проанализировали.
Никакие regexes не необходимы, но они могут спасти мир времени в записи скрученного вручную синтаксического анализатора для чего-то, чего regex может легко достигнуть.
Если я мог бы направить OP к некоторым ответам/комментариям один из моих собственных вопросов: Как важный знает Regexs?
Каждый раз, когда у Вас есть некоторый шаблон для нахождения в большом количестве текстовых данных или если Вы хотите проверить, что строка находится в определенном формате.
Например, адрес электронной почты...
Код для проверки в символе и присутствии допустимого домена будет выглядеть довольно большим, где Вы могли просто использовать регулярное выражение и иметь ответ в 2 строках кода.
Regex r = new Regex("<An Email Address Regex>");
bool isValidEmail = r.IsMatch(MyInput);
Другие примеры были бы для проверки, что числа находятся в правильном формате прежде, чем проанализировать их в целые числа и т.д.
Регулярные выражения являются очень кратким способом указать большую часть сопоставления с образцом и - заменяющие проблемы, и regexp механизмы могут быть очень высоко оптимизированы.
Если бы Вы хотели сделать то же задание даже как относительно простой regexp, то необходимо было бы написать много кода, который, вероятно, будет содержать много ошибок, будет тверд понять и работать плохо.
Принимая во внимание, что выполнение того же с regexp намного короче, почти наверняка работает, а также технически возможно, и легче понять любому знакомому с regexpes (хотя это должно быть прокомментировано в любом случае),
Некоторые практические использования реального мира:
Нахождение абстрактных классов, которые расширяют TestCase JUNIT:
abstract\s+class\s+\w+\s+extends\s+TestCase
Это полезно для нахождения тестовых сценариев, которые нельзя инстанцировать и будут нужны, исключая из сценария сборки муравья, который выполняет тестовые сценарии. Вы не можете искать обычный текст, потому что Вы не знаете имен классов заранее. следовательно \w + (По крайней мере один словесный символ).
Нахождение выполняющий удар или сценарии оболочки Bourne:
ps -e | grep -e " sh| bash"
это полезно, если Вы хотите уничтожить их всех или что-то, если бы Вы сделали поиск просто sh, то Вы не получили бы удара и имели бы для выполнения команды снова для сценариев удара. Снова, более пригодный к эксплуатации, чем прекрасный, но почти никакой regex Вы пишете, на лету будет.
Это не прекрасно, но большая часть regexes не будет, или они займут много времени, чтобы записать, что они не стоят того. Те, которых Вы совершенствуете, являются теми, Вы фиксируете как какая-то часть проверки или созданного приложения.
Jon и Sqook дали прекрасное объяснение и определение Регулярных выражений, и для простых проблем довольно понятно, но если Вы используете его для сложных проблемных регулярных выражений, может быть a и $ ((, по крайней мере, для меня ;-))
Я использую Экспресс много, чтобы помочь мне создать сложный код регулярного выражения.
http://www.ultrapico.com/Expresso.htm
Это имеет сборку в библиотеке с выражениями, которые можно использовать, режим проектирования, где можно создать код и тестовый режим, где можно протестировать и проверить код. Это помогло мне создать и понять сложные выражения лучше!
Goodluck!
Дать Вам некоторые примеры:
Адрес электронной почты
Пароль требует по крайней мере 1 алфавита и 1 цифры
Как можно достигнуть этих требований?
Лучший способ состоит в том, чтобы использовать регулярное выражение.
Считайте следующие ссылки для узнавания больше:
Как к: используйте регулярные выражения для ограничения входа в ASP.NET http://msdn.microsoft.com/en-us/library/ms998267.aspx
Пример критического использования: JavaScript :
Если вам нужно выполнить поиск
или заменить
в строке, единственное соответствие, которое вы можете сделать, - это регулярное выражение. Это в JavaScript API для этих строковых методов ...
Лично я в основном использую регулярные выражения только тогда, когда мне нужно какое-то расширенное сопоставление в автоматическом поиске / замене в текстовом редакторе ( TextPad или Visual Studio ). На мой взгляд, самая мощная функция - это возможность сопоставить шаблон, который можно вставить в замену.