2017-07-17 3 views
0

Je crée un SPA à DurandalJS avec MVC, et ont jQuery le chargement d'une <select> avec des options chargées à partir d'une base de données. Réglage des points d'arrêt, j'ai pu suivre la pile tout le long de la chaîne et vérifier que tout mon chargement ajax et appels jQuery se produisaient, mais quand je vais cocher la case de sélection, il est vide, y compris le code html interne de l'étiquette et les éléments déroulants eux-mêmes. Ce qui est bizarre, c'est que les éléments se chargeront si je navigue vers une autre page et que je reviens à la page d'origine (puisqu'il s'agit d'une application d'une seule page ajax-ified, elle ne navigue pas dans le sens traditionnel.)DurandalJS et jQuery ne pas ajouter à Sélectionnez

Pourquoi cela se produit et comment puis-je corriger

code pour charger les données:

function addProjectSelectorOptions(projects) { 
     $('#project-picker').empty(); 
     for (var i = 0; i < projects.length; i++) { 
      console.log(projects[i]); 
      $('#project-picker').append(new Option(projects[i]["Name"], projects[i]["Id"])); 
     } 
    } 

    function loadData() { 

     $.ajax({ 
      url: '/ClubhouseData/GetProjects', 
      type: 'GET', 
      cache: false, 
      success: function (results) { 
       console.log(results); 
       addProjectSelectorOptions(results); 
      } 
     }); 

    }; 

    loadData(); 

Répondre

0

Résolu:

J'ai enveloppé loadData() dans un appel jQuery onDocumentLoad et il a résolu le problème.