2016-08-17 70 views
1

我試圖將雙向數據綁定變量傳遞給Angular-UI-Bootstrap Datepicker customClass。但是數據綁定在我的customClass函數中不起作用,它只是給了我初始化的值chosenUser變量。如何將變量傳遞給Angular UI Bootstrap Datepicker自定義類

實施例:

  1. 我加載網站和getDayClass被調用與chosenUser初始化的數據(在這種情況下未定義)
  2. 我從網站和兩個選擇的用戶數據綁定在其他地方正常工作,但在getDayClass函數
  3. 所以在getDayClasschosenUser仍顯示爲不確定,即使它不是

所以getDayClass沒有得到該函數內部傳遞的第一個負載後的變量所做的任何更改。我無法理解爲什麼它不能在那裏工作。

這裏是我的角度控制器的代碼版本剝離:

function CalendarController() { 
    var vm = this; 

    //THIS IS THE VARIABLE (USER OBJECT) I'M TRYING TO PASS TO getDayClass 
    vm.chosenUser = {}; 

    //OPTIONS PASSED TO BOOTSTRAP DATEPICKER 
    vm.options = { 
     customClass: getDayClass 
    }; 

    //THIS IS THE FUNCTION I RUN FROM HTML WITH NG-CLICK AND IT EXECUTES 
    //FUNCTION getDayClass (AMONG OTHER THINGS) 
    vm.refresh = function() { 
     $("#calendar").data("$uibDatepickerController").refreshView(); 
    } 

    function getDayClass(data) { 
     var date = data.date, 
     mode = data.mode; 

     //RETURNS UNDEFINED (ONLY INSIDE THIS FUNCTION) 
     //EVEN AFTER USER HAS BEEN CHOSEN 
     console.log(vm.chosenUser); 
     ... 
    }; 
} 

回答

1

你可以嘗試將「chosenUser」到一個數組,而不是使用普通的JavaScript對象符號。就像:

function CalendarController() { 
     var vm = this; 

     //THIS IS THE VARIABLE I'M TRYING TO PASS TO getDayClass 
     vm.chosenUser = ["UserNameWillBeHere"]; 

     //OPTIONS PASSED TO BOOTSTRAP DATEPICKER 
     vm.options = { 
      customClass: getDayClass 
     }; 

     //THIS IS THE FUNCTION I RUN FROM HTML WITH NG-CLICK AND IT EXECUTES 
     //FUNCTION getDayClass (AMONG OTHER THINGS) 
     vm.refresh = function() { 
      $("#calendar").data("$uibDatepickerController").refreshView(); 
     } 

     function getDayClass(data) { 
      var date = data.date, 
      mode = data.mode; 

      //RETURNS UNDEFINED (ONLY INSIDE THIS FUNCTION) 
      //EVEN AFTER USER HAS BEEN CHOSEN 
      console.log(vm.chosenUser[0]); 
      ... 
     }; 
    } 
+0

謝謝,但它不起作用:/問題是,getDayClass第一次加載後對所選擇的用戶所做的任何更改不會出現在getDayClass中。並且getDayClass在網站第一次加載時加載,所以chosenUser的雙向數據綁定是無用的,因爲由於某種原因它不會影響getDayClass – Dope

相關問題