使用angular指令时,我在指令里(指令里我需要用到数据)无法第一时间获取到当前数据,必须点击页面上的主页按钮才可以获取到,这是咋回事。数据是在调用这个指令的控制器里用服务获取到然后成功后处理的。
代码如下:
function sayHow(){
return {
restrict:'A',
replace:true,
template:'<div id="ca"></div>',
scope:false,
link:function(scope,element){
$('#ca').calendar({
width: 248,
height: 270,
data:scope.calInit, //就是这里,这个数组是在控制器里定义的。在页面是可以遍历出来的但是这里好像是获取不到,要切换其他选项再点击回来才可以
onSelected: function (view, date, data) {
function formatTen(num) {
return num > 9 ? (num + "") : ("0" + num);
}
function formatDate(date) {
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
var hour = date.getHours();
var minute = date.getMinutes();
var second = date.getSeconds();
return year + "-" + formatTen(month) + "-" + formatTen(day);
}
var str = formatDate(date);
scope.inquiryCalendarEvents(str);
}
});
}
}
}
你在代码里面写一个scope.$watch('calInit', function(val, oldVal){debugger;});你调试下,看开始是没有,还是说数据就是没定义。
因为你以上只描述了一部门,所以没办法判断