我已經下載了Angular UI Bootstrap Datepicker
,我需要訪問其控制器的範圍。但我完全不知道如何在沒有編輯Datepicker中的代碼的情況下做到這一點,我認爲這不是它應該完成的方式。如何在不同模塊的控制器之間共享數據
所以,我有我自己的應用程序/模塊,myApp
,我有一個控制器MyController
,在我需要訪問UibDatepickerController
和UibDaypickerController
,這是在ui.bootstrap.datepicker
應用程序/模塊。我不想更改ui.bootstrap.datepicker
模塊中的代碼。
這基本上是the same problem我之前發佈的,但我已經想通了很多我認爲。 (在這一個花費50小時:D)
This solution不起作用,因爲你不能注入控制器,就像你可以注入一個服務。
這是一種我設計的:
控制器:
function MyCtrl() {
var vm = this;
vm.dt = new Date();
vm.options = {
...
};
vm.refresh = function() {
//returns initialized value all the time (current date)
console.log(vm.dt);
$("#calendar").data("$uibDatepickerController").refreshView();
}
};
angular.module('myApp')
.controller('MyCtrl', MyCtrl);
HTML:
<div ng-controller="CalendarCtrl as calCtrl">
<pre>Selected date is: <em>{{calCtrl.dt | date:'fullDate' }}</em>
</pre>
<div style="display:inline-block">
<div uib-datepicker="" id="calendar" ng-model="calCtrl.dt" datepicker-options="calCtrl.options"></div>
</div>
<button ng-click="calCtrl.refresh()">Refresh</button>
</div>
什麼,具體而言,你需要訪問?選擇日期/日期還是內部? – MPawlak
選定的日期,我也需要ui.bootstrap.datepicker模塊能夠訪問我的控制器中的變量。 – Dope
對於日期,我只是將元素的值綁定到控制器中的變量,對於直接控制器訪問控制器,Niles的答案更接近你想要的。你可以發佈一個小提琴或類似的東西,所以我們可以更好地瞭解你想去的地方嗎? – MPawlak