2013-11-15 36 views
-1

使用Angular 1.0.8 - 我無法更新它。指令/控制器與手錶表達式之間的雙向綁定

我創建了一個簡單的日期選擇器指令,該指令創建了三個帶有日期選項的<select>。這使用隔離範圍來存儲選擇並根據月/年更新顯示的日期。我還需要將派生的日期(年 - 月 - 日)傳回給控制器,但我無法弄清楚如何執行此操作。

app.directive("datepicker", function() { 
    return { 
     restrict: "E", 
     scope: { current: "=" }, 
     controller: function ($scope) { 
      // logic for d/m/y on scope omitted 

      $scope.watch(dateHasChanged, function (newValue) { 
       $scope.current = newValue; 
      }); 
     } 
    } 
}); 

該控制器具有$scope.current = {answer: ""},所以我試圖用scope: {current: "="}創建指令和控制器之間的結合。這顯然不起作用。

JSFiddle example


作爲獎勵,該ng-options="month.date as month.english for month in monthList"工作不正常或者。它始於month.date爲0,即使monthList將第一個month.date設置爲1.這是否因爲版本?

+0

我真的不明白你做了什麼錯了...這是花掉你想要的還是我失去了一些東西? [PLUNK](http://jsfiddle.net/gC6KQ/1/) –

+0

您將日期分配給'current',但您使用'current.answer'將其顯示在控制器範圍中。在長時間的工作中責備它。 ;)順便說一句,在$ watch中的month.date在選擇1月(至少在我的電腦上)時等於1。 – Stewie

回答

1

您正在覆蓋scope.current對象,應該更新scope.current[property]

輕微錯誤日期Calcs(計算),但working here

相關問題