| Author |  | 
      
        | Ayumiesan Newbie
 
  
 
 Joined: 03 March 2016
 Online Status: Offline
 Posts: 11
 | 
          Hi,
           | Posted: 05 May 2016 at 2:26am | IP Logged |   |  
           | 
 |  i try to applying building on Ajax content, Here my javascript Code :
 
 //Call of my popup
 App.Screens.showPopup(AttachJDWPopup);
 
 function AttachJDWPopup() {
 this.files = ko.observableArray();
 }
 AttachJDWPopup.prototype.popupTemplate = function (){
 return 'Popups_AttachJDWPopupViewModel';
 };
 AttachJDWPopup.prototype.onShow = function (){
 this.getFiles();
 };
 AttachJDWPopup.prototype.getFiles = function(){
 var self = this;
 $.ajax({
 type: 'POST',
 url: './test.php',
 success: function(jqXHR){
 $('#testAffichage').html(jqXHR);
 self.files(jqXHR);
 }
 });
 }
 AttachJDWPopup.prototype.onItemClick = function (){
 console.log("clickItem");
 };
 
 Here, my template use :
 
 <div class="mask" data-bind="click: onCancelClick"></div>
 <div class="popup_panel">
 <span class="close" data-bind="click: onCancelClick"></span>
 <div class="panels">
 <div class="panel files">
 <div class="panel_content" id="testAffichage">
 </div>
 </div>
 </div>
 <div class="buttons">
 <span class="button save" data-i18n="FILESTORAGE/BUTTON_SELECT" data-bind="i18n: 'text', click: onSelectClick"></span>
 <span class="button save" data-i18n="FILESTORAGE/BUTTON_CLOSE" data-bind="i18n: 'text', click: onCancelClick"></span>
 </div>
 </div>
 <span class="helper"></span>
 
 Here my code in test.php :
 
 <p class="itemJarvis" data-bind="click: onItemClick" data-id_fichier="1">Item1</p>
 <p class="itemJarvis selected" data-id_fichier="2">Item2</p>
 
 At this moment, i can open the popup and the binding are well applied. Now, i want to put some text using ajax in my template, so i call my function "getFiles()" i have the result put on my html, that is ok, but now, i want to apply building for use my "onItemClick" function.
 
 And when i try to put in ajax response :
 ko.applyBindings(self,document.getElementById('testAffichage'));
 
 Apply binding work fine. But if i reload the popup Or just the content, i have an error message :
 Uncaught Error: You cannot apply bindings multiple times to the same element.
 
 Can you help me ?
 | 
       
        | Back to Top |     | 
       
       
        |  | 
        | Igor AfterLogic Support
 
  
 
 Joined: 24 June 2008
 Location: United States
 Online Status: Offline
 Posts: 6167
 | 
          The typical way that's done is:
           | Posted: 05 May 2016 at 4:14am | IP Logged |   |  
           | 
 |  
 
 
| Code: 
 
    
    | 
      
       | ..... var applied = false;
 .....
 if (!applied){
 ko.applyBindings(self,document.getElementById('testAffichage'));
 applied = true;
 }
 |  |  |  
 --
 Regards,
 Igor, AfterLogic Support
 | 
       
        | Back to Top |     | 
       
       
        |  |