2015-04-21 72 views
0

我想根據來自控制器的指令對角度設置控件的值設置$watch,我嘗試使用leafletScope.$watch("variable")來跟隨angular-leaflet-directive的方向。angular-leaflet-directive的角度手錶

我添加了一個新的$watch平等比較,因爲它是一個對象:

angular.extend($scope, { 
    controls: {} 
} 

這是初始化控制,因爲這似乎是:

​​

然後我用調用它的控制器需要。

然後我用後來把它叫做一個事件:

$scope.controls = { new object } 

如果我登錄控件的變化,然後又在$表時,我得到以下順序:

  • 控制$watch事件記錄
  • $scope.control變化事件記錄
  • 沒有進一步的日誌

$scope被更改後未調用手錶的事實表明我做錯了。

任何人都可以告訴我在哪裏,或者如果我在我的簡單測試中得出了錯誤的結論。

如果我做同樣的改變我「中心」的模式,我得到:

  • 中心$watch事件記錄
  • $scope.center變化事件記錄
  • 中心$watch事件記錄與新價值

回答

1

原來是角度傳單指令和我使用的html-minifier的html縮小器之間的衝突。對於單張控制角度小葉的指示性符號是controls所以在我的HTML文件我有

<leaflet center="centre" controls="controls" layers="layers" width="1200px" height="800px"></leaflet> 

的HTML-minifier了控制=「控制」是一個布爾屬性,並與collapse boolean attributes標誌就可以減少到

<leaflet center="centre" controls layers="layers" width="1200px" height="800px"></leaflet> 

哪個不好。我會要求這或者更好地記錄在角單張指令中,或者他們將控件的名稱更改爲單張控件或某種東西,以避免這種情況發生在將來像我這樣毫無戒心的人身上。

顯然,手錶上真正的國旗被證明是資源密集型的,我將它移除了,它仍然有效..