我正在尝试使用 AngularUI 指令日历并在我自己的指令中的回调函数中设置它的源(所以基本上我将指令包装到指令中)。
所以在 html 中使用我的指令是:
<calendar><calendar>
我有这个模板形成我的包装指令(calendar.html):
<div class="row-fluid" >
<div data-ui-calendar="{height: 450,editable: false}" class="span8 calendar" data-ng-model="events"></div>
</div>
并声明了这个指令:
.directive('calendar', ['calendarFct', function(calendarFct) {
return {
restrict: 'E',
templateUrl: 'partials/directives/calendar.html',
link: function(scope, element, attrs) {
var mainScope = scope;
// load data from server
calendarFct.getEvents(function(data) {
mainScope.events = data; // DOESN'T WORK
});
mainScope.events = data; // this would work, but I don't have "data" here
}
};
所以问题是我试图在回调函数中设置 scope.events 但它在浏览器中没有显示任何内容(但回调函数中的代码被执行)。如果我在回调之外尝试它,它会工作,但我必须先从服务器加载数据......如何让它工作?我认为这个技巧mainScope
会起作用,甚至可以直接起作用,scope.events
但不会。谢谢
AngularUI 的完整日历看起来有些问题。我尝试将指令模板更改为简单的输入框,并在回调函数中更改了与 ng-model 绑定的值,它工作正常