2016-08-17 71 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

相关问题