如何将变量传递给Angular UI Bootstrap Datepicker自定义类
问题描述:
我试图将双向数据绑定变量传递给Angular-UI-Bootstrap Datepicker customClass。但是数据绑定在我的customClass函数中不起作用,它只是给了我初始化的值chosenUser变量。如何将变量传递给Angular UI Bootstrap Datepicker自定义类
实施例:
- 我加载网站和getDayClass被调用与chosenUser初始化的数据(在这种情况下未定义)
- 我从网站和两个选择的用户数据绑定在其他地方正常工作,但在getDayClass函数
- 所以在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);
...
};
}
答
你可以尝试将“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]);
...
};
}
谢谢,但它不起作用:/问题是,getDayClass第一次加载后对所选择的用户所做的任何更改不会出现在getDayClass中。并且getDayClass在网站第一次加载时加载,所以chosenUser的双向数据绑定是无用的,因为由于某种原因它不会影响getDayClass – Dope