[英]how to check if ng-init is processed without using $scope in angularjs?
[英]angularjs and ng-init scope when data changes
因此,我有一個日歷應用程序,現在用戶可以在其中選擇開始/結束日期,然后單擊“更新日歷”。 這將填充一個日歷。 但是,我在合並范圍內添加新元素時遇到了麻煩。 例如,我不是一遍又一遍地連續使用相同的函數從開始日期,星期幾,星期幾等來計算某個單元格的“單元格日期”,而是希望將單元格日期一次存儲到其范圍內並讓其他人使用。 盡管進行了很多嘗試,我還是無法以某種方式執行此操作。 在下面的JSFiddle中,您會注意到每個日歷單元格的右上角顯示每月的某天。 但是,如果您更改日期(例如前一個月),則該月的日期會更新,但是我在單元格中顯示的“單元格日期”不會更新!
例如,以“ 2014年7月5日星期六”為例。 更新日期以6/1開始,最右邊的單元格仍然是“ Sat Jul 05 2014”,即使它的月份是6月7日! 相關代碼在“ calcell”指令和“ events”指令中。 在calcell中,我將單元格設置為ng-init ='celld = cellDate(num,start_dt,$ index)'。 然后在事件中,我只是使用{{celld}}進行顯示。 我可以通過在事件中使用cellDate(num,start_dt,$ index)來使其工作,但我真的不想在各處使用同一函數一百萬次。 有沒有一種方法可以將單元格日期存儲在單元格對象中,並僅在子級作用域中使用它,並在數據更改時更新它? 最終,我將把單元格日期傳遞給函數以獲取該日期的事件數據,然后事件將在其上進行迭代以顯示事件數據。
app.directive("events", function($compile, DateService) {
return {
restrict: "A",
replace: true,
scope: true,
template:
"<div>{{celld}}</div>",
link: function(scope, element, attrs) {
scope.DateService = DateService;
}
}
});
//calendar cell
app.directive("calcell", function($compile, DateService) {
return {
restrict: "A",
replace: true,
scope: true,
template:
"<td ng-init='celld=cellDate(num, start_dt, $index)' id='{{\"td\" + DateService.getDateInt(cellDate(num, start_dt, $index))}}' \
realclass='{{getScopeClass(cellDate(num, start_dt, $index))}}'>\
<div>\
<a class='CellDay'>{{DateService.getMonthDay(cellDate(num, start_dt, $index))}}</a>\
</div>\
<br/>\
<br/>\
<br/>\
<br/>\
<div events></div>\
</div>\
</td>",
link: function(scope, element, attrs) {
scope.DateService = DateService;
}
}
});
謝謝!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.