2016-11-28 4 views
-2

Я пытаюсь поддерживать Назад Функциональность. В нашем приложении мы решили поместить кнопку «Назад» и одним нажатием кнопки «Назад», я должен поддерживать все значения формы, которые пользователь выбрал или заполнил. Я делаю это в MVC с угловыми.Невозможно вызвать угловую функцию без setTimeout

В форме мы разрешили пользователю выбирать цвет для выбранной мобильной модели. Таким образом, форма похожа на пользователь, который предложит выбрать модель телефона, а затем его цвет и, наконец, его емкость. Таким образом, это зависимые поля, которые будут включены, только если выбрано немедленное поле.

Цвет создается динамически.

В моем нижеследующем коде, который я привел ниже, для Цвет. Выбрав Color, я также включил необходимые возможности.

var elementName = modelName + '_Black'; 
var elementNameWithHash = '#' + elementName; 
angular.element(elementNameWithHash).trigger("click", elementName); 

ModelName будет передан ему на динамически.

Проблема здесь заключается в том, что код не запускается, чтобы вызвать щелчок для раздела «Цвет», чтобы его можно было отобразить как выделенное, и приведенный ниже раздел емкости включен.

Но этот код не будет выполняться до тех пор, пока я не буду украшать его SetTimeout метод, как это:

setTimeout(function() { angular.element(elementNameWithHash).trigger("click", elementName) }, 1); 

Я не могу понять, почему он показывает это странное поведение для меня.

Любой свет на это, был бы весьма признателен.

И, если мне нужно позвонить без setTimeout, что я должен сделать?

+0

Это звучит, как это может быть состоянием гонки сортов, например, хеш-элемент еще недоступен, если вы выполняете прямой вызов, но ожидание времени позволяет продолжить вызов. Вы можете включить полный код, чтобы мы могли его увидеть. –

+0

@TimBiegeleisen, пожалуйста, проверьте и дайте мне знать, если что-то еще, если потребуется. – HarshSharma

+0

Почему вы вызываете щелчок по элементу? если для запуска функции, вызванной щелчком, просто вызовите функцию напрямую. –

ответ

0

Похоже, что ваш код вызывается до загрузки страницы.

Угловые имеют свою собственную функцию для проверки на документе готов:

angular.element(document).ready(function() { 
    // Your code 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^